dotfiles/nixos/conf

56 lines
1.8 KiB
Plaintext
Raw Normal View History

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