infra/nix/os/devices/default.nix

49 lines
1 KiB
Nix
Raw Normal View History

2020-12-31 02:12:29 +01:00
{ dir
, pkgs ? import <channels-nixos-stable> {}
2018-11-19 02:04:26 +01:00
, ownLib ? import ../lib/default.nix { }
, gitRoot ? "$(git rev-parse --show-toplevel)"
2020-12-31 02:12:29 +01:00
# FIXME: why do these need explicit mentioning?
, moreargs ? null
, rebuildarg ? ""
, ...
} @ args :
2018-11-19 02:04:26 +01:00
let
rebuildargsSudo = [ "switch" "boot" ];
2020-12-31 02:12:29 +01:00
rebuild = {
rebuildarg
, gitRoot
, moreargs ? null
, ...
}: pkgs.writeScript "script" ''
2018-11-19 02:04:26 +01:00
#!/usr/bin/env bash
set -xe
pushd ${gitRoot}/${dir}
export NIXOS_CONFIG="$PWD"/configuration.nix
[[ -e "''${NIXOS_CONFIG}" ]]
${if (builtins.elem rebuildarg rebuildargsSudo)
&& builtins.match ".*--target-host.*" moreargs == null
then
"sudo -E \\"
else
""
}
nixos-rebuild --show-trace -I nixos-config=''${NIXOS_CONFIG} ${rebuildarg} ${moreargs}
2018-11-19 02:04:26 +01:00
if test -L result; then
rm result
fi
'';
2018-11-19 02:04:26 +01:00
in {
recipes = {
2020-12-31 02:12:29 +01:00
rebuild = rebuild { inherit gitRoot; inherit (args) rebuildarg moreargs; };
} // (import ./disk.nix (args // { inherit pkgs ownLib gitRoot; }))
;
2018-11-19 02:04:26 +01:00
}