infra/nix/os/devices/default.nix

46 lines
1.2 KiB
Nix
Raw Normal View History

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