Initial commit

This commit is contained in:
2026-06-04 06:24:56 +02:00
commit 282f4864c4
111 changed files with 8083 additions and 0 deletions

40
scripts/install-node.sh Executable file
View File

@@ -0,0 +1,40 @@
#!/usr/bin/env bash
# Installs Node.js 22 into DailyMeals/.toolchain (no Homebrew required).
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
VERSION="22.22.0"
OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m)"
case "$ARCH" in
arm64|aarch64) ARCH="arm64" ;;
x86_64|amd64) ARCH="x64" ;;
*) echo "Unsupported architecture: $ARCH" >&2; exit 1 ;;
esac
DIR_NAME="node-v${VERSION}-${OS}-${ARCH}"
TARGET="$ROOT/.toolchain/$DIR_NAME"
if [[ -x "$TARGET/bin/npm" ]]; then
echo "Node.js already installed: $TARGET"
exit 0
fi
# Reuse FA_WEB toolchain when present (same machine, same arch).
FA_WEB_TOOLCHAIN="$ROOT/../FA_WEB/.toolchain/$DIR_NAME"
if [[ -d "$FA_WEB_TOOLCHAIN" ]]; then
mkdir -p "$ROOT/.toolchain"
ln -sfn "$FA_WEB_TOOLCHAIN" "$TARGET"
echo "Linked toolchain from FA_WEB: $TARGET"
exit 0
fi
mkdir -p "$ROOT/.toolchain"
TARBALL="node-v${VERSION}-${OS}-${ARCH}.tar.gz"
URL="https://nodejs.org/dist/v${VERSION}/${TARBALL}"
echo "Downloading $URL ..."
curl -fsSL "$URL" -o "/tmp/${TARBALL}"
tar -xzf "/tmp/${TARBALL}" -C "$ROOT/.toolchain"
rm -f "/tmp/${TARBALL}"
echo "Installed: $TARGET"
echo "Use: $ROOT/scripts/npm --version"