mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-10 20:27:02 +01:00
The Vite/React/TS dice solver had no git history yet. Commit it alongside a run.sh that ensures Node/pnpm are present, installs deps, and starts the dev server with a single command. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
66 lines
1.8 KiB
Bash
Executable File
66 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# ============================================================================
|
|
# Installs dependencies (Node via nvm, pnpm via corepack, then npm packages)
|
|
# and starts the KCD2 Dice Solver dev server.
|
|
# ============================================================================
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
readonly SCRIPT_DIR
|
|
readonly NODE_MIN_MAJOR=22
|
|
readonly NVM_DIR="${NVM_DIR:-$HOME/.nvm}"
|
|
|
|
ensure_node() {
|
|
if command -v node >/dev/null 2>&1; then
|
|
local major
|
|
major="$(node --version | sed -E 's/^v([0-9]+).*/\1/')"
|
|
if (( major >= NODE_MIN_MAJOR )); then
|
|
return
|
|
fi
|
|
echo "Node $(node --version) is older than required v${NODE_MIN_MAJOR}; installing a newer version via nvm..."
|
|
else
|
|
echo "Node not found; installing via nvm..."
|
|
fi
|
|
|
|
if [[ ! -s "${NVM_DIR}/nvm.sh" ]]; then
|
|
echo "Error: nvm not found at ${NVM_DIR}/nvm.sh; install nvm first." >&2
|
|
exit 1
|
|
fi
|
|
# shellcheck source=/dev/null
|
|
source "${NVM_DIR}/nvm.sh"
|
|
nvm install --lts
|
|
nvm use --lts
|
|
}
|
|
|
|
ensure_pnpm() {
|
|
if command -v pnpm >/dev/null 2>&1; then
|
|
return
|
|
fi
|
|
echo "pnpm not found; enabling via corepack..."
|
|
corepack enable
|
|
corepack prepare pnpm@latest --activate
|
|
}
|
|
|
|
main() {
|
|
# nvm.sh may not be sourced yet in a fresh shell, so load it before the
|
|
# version check even if `node` already resolves from a different source.
|
|
if [[ -s "${NVM_DIR}/nvm.sh" ]]; then
|
|
# shellcheck source=/dev/null
|
|
source "${NVM_DIR}/nvm.sh"
|
|
fi
|
|
|
|
ensure_node
|
|
ensure_pnpm
|
|
|
|
cd "$SCRIPT_DIR"
|
|
echo "Installing dependencies..."
|
|
pnpm install
|
|
|
|
echo "Starting dev server (http://localhost:5174)..."
|
|
exec pnpm dev
|
|
}
|
|
|
|
main "$@"
|