#!/usr/bin/env bash # Pack everything needed to install + run the Vue frontend into a # single tarball: sources, entry HTML, Vite/TS config, and the lock # file. Recipient runs: # # tar -xzf ruwio-.tar.gz # cd ruwio- # npm install # npm run dev # or: npm run build # # Deliberately excluded: node_modules, dist, the render server, # docker-compose, logo working files, personal notes, screenshots, # .claude/, .git/. set -euo pipefail cd "$(dirname "$0")/.." VERSION=$(node -p "require('./package.json').version") NAME="ruwio-${VERSION}" OUT_DIR="dist-archive" ARCHIVE="${OUT_DIR}/${NAME}.tar.gz" mkdir -p "$OUT_DIR" rm -f "$ARCHIVE" # Explicit allowlist — everything else stays out. If you add a new # top-level file the Vue app depends on (e.g. a separate env file or # a PostCSS config), extend this list. tar --transform "s,^,${NAME}/," -czf "$ARCHIVE" \ index.html \ package.json \ package-lock.json \ tsconfig.json \ vite.config.ts \ .gitignore \ public \ src echo "Created $ARCHIVE" ls -lh "$ARCHIVE"