bot.py was deleted upstream — neither prod nor shipyard launches a polling bot anymore. server.py only needs python-dotenv + aiohttp. Also refresh the prod section's comment + service description to reflect the Mini-App-only architecture. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
60 lines
2.5 KiB
Bash
Executable file
60 lines
2.5 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Build the NixOS installer ISO on sunken-ship (x86_64-linux) and copy it back.
|
|
# Run from your Mac when sunken-ship is reachable (same network).
|
|
# Usage: ./scripts/build-installer-iso-on-server.sh [host] [output_dir]
|
|
# host: SSH host (default: sunken-ship)
|
|
# output_dir: where to save the ISO on your Mac (default: .)
|
|
# Override SSH key: SSH_KEY=~/.ssh/my_key ./scripts/build-installer-iso-on-server.sh
|
|
#
|
|
# If nixos/installer-wifi.nix exists locally (gitignored), it is copied into
|
|
# the build and the ISO gets preconfigured live-system WiFi. flake-modules/
|
|
# installer-iso.nix auto-includes it via a builtins.pathExists check.
|
|
set -euo pipefail
|
|
|
|
HOST="${1:-sunken-ship}"
|
|
OUT="${2:-.}"
|
|
REPO_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
|
|
|
|
# Default to the sunken-ship SSH key when targeting that host.
|
|
if [[ -n "${SSH_KEY:-}" ]]; then
|
|
SSH_OPTS=(-i "$SSH_KEY")
|
|
elif [[ "$HOST" == "sunken-ship" ]] && [[ -f ~/.ssh/id_ed25519_sunken_ship ]]; then
|
|
SSH_OPTS=(-i ~/.ssh/id_ed25519_sunken_ship)
|
|
else
|
|
SSH_OPTS=()
|
|
fi
|
|
|
|
echo "Pushing main so the server can clone the latest..."
|
|
git -C "$REPO_ROOT" push origin main 2>/dev/null || true
|
|
|
|
echo "On $HOST: clone main into ~/dotfiles-iso-build..."
|
|
ssh "${SSH_OPTS[@]}" "$HOST" 'set -e
|
|
BUILD_DIR=~/dotfiles-iso-build
|
|
rm -rf "$BUILD_DIR"
|
|
git clone --branch main https://github.com/DannyDannyDanny/dotfiles.git "$BUILD_DIR"
|
|
'
|
|
|
|
# Optional live-system WiFi: the module is gitignored, so a fresh clone never
|
|
# has it. Copy it in and stage it (git add -f) so the flake sees it -- a flake
|
|
# build only includes git-tracked files.
|
|
if [[ -f "$REPO_ROOT/nixos/installer-wifi.nix" ]]; then
|
|
echo "Found nixos/installer-wifi.nix - including live-system WiFi in the ISO."
|
|
scp "${SSH_OPTS[@]}" "$REPO_ROOT/nixos/installer-wifi.nix" \
|
|
"$HOST:dotfiles-iso-build/nixos/installer-wifi.nix"
|
|
ssh "${SSH_OPTS[@]}" "$HOST" 'cd ~/dotfiles-iso-build && git add -f nixos/installer-wifi.nix'
|
|
fi
|
|
|
|
echo "On $HOST: build ISO (flake is at the repo root)..."
|
|
ssh "${SSH_OPTS[@]}" "$HOST" 'set -e
|
|
cd ~/dotfiles-iso-build
|
|
nix build .#installer-iso
|
|
ls -la result/iso/
|
|
'
|
|
|
|
ISO_NAME=$(ssh "${SSH_OPTS[@]}" "$HOST" 'ls ~/dotfiles-iso-build/result/iso/*.iso 2>/dev/null | head -1')
|
|
ISO_NAME=$(basename "$ISO_NAME")
|
|
|
|
echo "Copying $ISO_NAME to $OUT ..."
|
|
scp "${SSH_OPTS[@]}" "$HOST:dotfiles-iso-build/result/iso/$ISO_NAME" "$OUT/"
|
|
echo "Done. ISO at $OUT/$ISO_NAME"
|
|
echo "Write to USB: diskutil unmountDisk diskN && sudo dd if=$OUT/$ISO_NAME of=/dev/rdiskN bs=4m"
|