#!/usr/bin/env bash set -euo pipefail CONFIG="radiantwavekiosk-rpi" VARIANT="" for arg in "$@"; do case "$arg" in --dev) CONFIG="radiantwavekiosk-rpi-dev"; VARIANT="-dev" ;; *) echo "Unknown arg: $arg"; exit 1 ;; esac done TIMESTAMP=$(date +"%m%d%Y-%H%M") FILENAME="radiantwave-kiosk-rpi${VARIANT}_${TIMESTAMP}.img.zst" REPO="$(pwd)" NIX_STORE="kiosk-nix-store" echo "==> Building ${CONFIG}..." echo "==> Output: ${REPO}/${FILENAME}" echo "" podman volume create "${NIX_STORE}" 2>/dev/null || true podman run --rm \ -v "${REPO}:/repo" \ -v "${NIX_STORE}:/nix/store" \ -w /repo \ nixos/nix:latest \ sh -c ' set -ex mkdir -p /etc/nix echo "experimental-features = nix-command flakes" > /etc/nix/nix.conf echo "accept-flake-config = true" >> /etc/nix/nix.conf echo "extra-substituters = https://cache.nixos.org https://nixos-raspberrypi.cachix.org" >> /etc/nix/nix.conf echo "extra-trusted-public-keys = nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI=" >> /etc/nix/nix.conf echo "max-jobs = 4" >> /etc/nix/nix.conf echo "==> Building sdImage (first run slow, cached after)..." nix --accept-flake-config build \ .#nixosConfigurations.'${CONFIG}'.config.system.build.sdImage \ --fallback \ --print-build-logs echo "==> Build complete, copying..." cp result/sd-image/*.img* /repo/'${FILENAME}' echo "==> Done: ${FILENAME}" ls -lh /repo/'${FILENAME}' '