#!/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)" url="https://github.com/dadada/nix-config/archive/${rev}.tar.gz" sha256=$(hash "$rev") cat < /etc/nixos/deploy.nix && tmux new -d \"nixos-rebuild switch |& tee /var/log/dadada-deploy.log\""' { config, pkgs, lib, ... }: let dadada = import (builtins.fetchTarball { url = ${url}; sha256 = "${sha256}"; }) { inherit pkgs; }; in { imports = [ ./hardware-configuration.nix dadada.hosts."${host}" ]; } EOF