2016-01-28 02:59:31 +01:00
|
|
|
#!/usr/bin/env bash
|
2020-05-21 17:39:38 +02:00
|
|
|
set -xeuo pipefail
|
|
|
|
if ! [ -e secrets.nix ]
|
2016-01-28 02:59:31 +01:00
|
|
|
then
|
2018-02-27 16:49:15 +01:00
|
|
|
git crypt unlock
|
2016-01-28 02:59:31 +01:00
|
|
|
fi
|
2021-01-03 17:12:16 +01:00
|
|
|
export NIX_PATH=yori-nix=$PWD
|
2020-05-21 17:39:38 +02:00
|
|
|
host=$1
|
|
|
|
TARGET_HOST=$(nix eval --raw -f vpn.nix ips.$host)
|
2021-10-18 14:42:53 +02:00
|
|
|
TARGET_HOST=$(ssh $TARGET_HOST ip --json r get 1.1.1.1 | jq -r '.[0].prefsrc')
|
2020-05-21 17:39:38 +02:00
|
|
|
#TARGET_HOST=192.168.178.1
|
|
|
|
case $2 in
|
2018-03-11 23:18:22 +01:00
|
|
|
copy-keys)
|
2021-01-03 16:41:48 +01:00
|
|
|
nix build -f servers.nix "$host".config.deployment.keys-copy --out-link copy-keys
|
2018-03-11 23:18:22 +01:00
|
|
|
./copy-keys/bin/copy-keys "$TARGET_HOST"
|
|
|
|
# rm ./copy-keys
|
|
|
|
;;
|
|
|
|
exec)
|
|
|
|
CHANNEL=$(jq -r ".$2.pkgs"<servers.json)
|
2020-05-21 17:39:38 +02:00
|
|
|
channel_url=$(get_channel "$CHANNEL")
|
|
|
|
export NIX_PATH="$channel_url:nixos-config=$PWD/logical/$2.nix:$NIX_PATH"
|
|
|
|
"${@:3}"
|
2018-03-11 23:18:22 +01:00
|
|
|
;;
|
|
|
|
ssh)
|
|
|
|
ssh root@"$TARGET_HOST"
|
|
|
|
;;
|
|
|
|
repl)
|
2020-05-21 17:39:38 +02:00
|
|
|
exec "$0" exec "$2" nix repl '<nixpkgs>' '<nixpkgs/nixos>'
|
2018-03-11 23:18:22 +01:00
|
|
|
;;
|
|
|
|
build)
|
2020-05-21 17:39:38 +02:00
|
|
|
nix build -f servers.nix "$host" --show-trace
|
2018-03-11 23:18:22 +01:00
|
|
|
;;
|
2018-03-11 23:30:05 +01:00
|
|
|
copy)
|
2020-05-21 17:39:38 +02:00
|
|
|
nix copy -f servers.nix "$host" --show-trace --to "ssh://$TARGET_HOST"
|
|
|
|
;;
|
|
|
|
test)
|
|
|
|
outPath=$(nix-build servers.nix -A "$host")
|
|
|
|
nix copy -f servers.nix "$host" --show-trace --to "ssh://$TARGET_HOST"
|
|
|
|
ssh root@"$TARGET_HOST" $outPath/bin/switch-to-configuration test
|
2018-03-11 23:30:05 +01:00
|
|
|
;;
|
2018-03-11 23:18:22 +01:00
|
|
|
boot)
|
2020-05-21 17:39:38 +02:00
|
|
|
outPath=$(nix-build servers.nix -A "$host")
|
|
|
|
nix copy "$outPath" --show-trace --to "ssh://$TARGET_HOST"
|
|
|
|
ssh root@"$TARGET_HOST" nix-env -p "/nix/var/nix/profiles/system" --set "$outPath"
|
|
|
|
ssh root@"$TARGET_HOST" $outPath/bin/switch-to-configuration boot
|
2018-03-11 23:18:22 +01:00
|
|
|
;;
|
|
|
|
switch)
|
2020-05-21 17:39:38 +02:00
|
|
|
outPath=$(nix-build servers.nix -A "$host")
|
|
|
|
nix copy "$outPath" --show-trace --to "ssh://$TARGET_HOST"
|
|
|
|
ssh root@"$TARGET_HOST" nix-env -p "/nix/var/nix/profiles/system" --set "$outPath"
|
|
|
|
ssh root@"$TARGET_HOST" $outPath/bin/switch-to-configuration switch
|
2018-03-11 23:18:22 +01:00
|
|
|
;;
|
|
|
|
|
|
|
|
|
2016-01-28 02:59:31 +01:00
|
|
|
esac
|