Refactor deploy script
This commit is contained in:
parent
9a5f573be1
commit
439e5c6953
2 changed files with 21 additions and 12 deletions
14
utils/deploy
Executable file
14
utils/deploy
Executable 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
37
utils/gen-config
Executable 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
|
Loading…
Add table
Add a link
Reference in a new issue