mirror of
https://github.com/kittywitch/nixfiles.git
synced 2026-02-10 04:49:19 -08:00
46 lines
674 B
Bash
Executable file
46 lines
674 B
Bash
Executable file
#!/usr/bin/env bash
|
|
set -eu
|
|
|
|
usage() {
|
|
echo example: $0 build samhain boot
|
|
}
|
|
|
|
eval_setup() {
|
|
HOST=$1
|
|
if [ $# -gt 2 ]; then
|
|
METHOD=$2
|
|
else
|
|
METHOD="switch"
|
|
fi
|
|
}
|
|
|
|
cmd_deploy() {
|
|
eval_setup $@
|
|
bash <(nix eval --raw deploy.${HOST} -f .) ${METHOD}
|
|
}
|
|
|
|
cmd_debug() {
|
|
eval_setup $@
|
|
nix eval --raw deploy.$HOST -f .
|
|
}
|
|
|
|
cmd_install() {
|
|
HOST=$1
|
|
nix build -f . hosts.$HOST.config.system.build.toplevel
|
|
CLOSURE=$(readlink result)
|
|
nix-store --export $(nix-store -qR ./result) | ssh root@$HOST nix-store --import --store /mnt
|
|
ssh root@$HOST nixos-install --system $CLOSURE
|
|
}
|
|
|
|
main() {
|
|
if [ $# -lt 2 ]; then
|
|
usage
|
|
else
|
|
CMD=$1
|
|
shift
|
|
|
|
cmd_$CMD $@
|
|
fi
|
|
}
|
|
|
|
main "$@"
|