37 lines
683 B
Bash
Executable file
37 lines
683 B
Bash
Executable file
#!/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
|