#!/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