Refactor deploy script

This commit is contained in:
Tim Schubert 2021-01-16 19:03:27 +01:00
parent 9a5f573be1
commit 439e5c6953
Signed by: dadada
GPG key ID: EEB8D1CE62C4DFEA
2 changed files with 21 additions and 12 deletions

14
utils/deploy Executable file
View file

@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -e
set -o pipefail
if [ -z "$1" ]
then
echo "usage: deploy <hostname>"
exit 1
fi
git push
gen-config $1 | ssh "${host}".dadada.li 'sudo cat - > /etc/nixos/configuration.nix && (nixos-rebuild test && nixos-rebuild switch) || (nixos-rebuild switch --rollback && exit 1)'

37
utils/gen-config Executable file
View file

@ -0,0 +1,37 @@
#!/usr/bin/env bash
function hash {
archive="$(mktemp /tmp/nix-config.XXX.tar.gz)"
git archive "$1" | gzip > "$archive"
nix-prefetch-url --unpack --type sha256 "file:$archive" 2>/dev/null
rm "$archive"
}
if [ -z "$1" ]
then
echo "usage: deploy <hostname>"
exit 1
fi
host="${1}"
rev="$(git rev-parse HEAD)"
sha256=$(hash "$rev")
cat <<EOF
{ config, pkgs, ... }:
let
host = "$host";
rev = "$rev";
sha256 = "$sha256";
dadada = import (builtins.fetchTarball {
url = "https://github.com/dadada/nix-config/archive/\${rev}.tar.gz";
sha256 = sha256;
}) { inherit pkgs; };
in
{
imports = [
./hardware-configuration.nix
dadada.hosts."\${host}"
];
}
EOF