#!/usr/bin/env bash set -e set -o pipefail if [ -z "$1" ] then echo "usage: deploy " exit 1 fi git push 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" } host="${1}" rev="$(git rev-parse HEAD)" sha256=$(hash "$rev") cat < /etc/nixos/configuration.nix && tmux new -d \"nixos-rebuild switch |& tee /var/log/dadada-deploy.log\""' { 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