infra/nix/os/devices/default.nix

36 lines
859 B
Nix

{ pkgs ? import <nixpkgs> {}
, ownLib ? import ../lib/default.nix { }
, dir
, rebuildarg
, moreargs ? ""
, diskId ? (import ((builtins.getEnv "PWD")+"/${dir}/hw.nix") {}).hardware.encryptedDisk.diskId
, gitRoot ? "$(git rev-parse --show-toplevel)"
}:
let
rebuildargsSudo = [ "switch" "boot" ];
rebuild = pkgs.writeScript "script" ''
#!/usr/bin/env bash
set -xe
pushd ${gitRoot}/${dir}
export NIXOS_CONFIG="$PWD"/configuration.nix
[[ -e "''${NIXOS_CONFIG}" ]]
${if (builtins.elem rebuildarg rebuildargsSudo) then
"sudo -E \\"
else
""
}
nixos-rebuild -I nixos-config=''${NIXOS_CONFIG} ${rebuildarg} ${moreargs}
if test -L result; then
rm result
fi
'';
in {
recipes = {
inherit rebuild;
} // (import ./disk.nix { inherit pkgs ownLib dir rebuildarg moreargs diskId gitRoot; });
}