mirror of
https://github.com/nix-community/disko
synced 2024-11-10 06:14:14 +00:00
Merge branch 'master' into update_flake_lock_action
This commit is contained in:
commit
13e56a1729
2 changed files with 66 additions and 62 deletions
|
@ -388,55 +388,59 @@ let
|
||||||
description = ''
|
description = ''
|
||||||
The scripts generated by disko
|
The scripts generated by disko
|
||||||
'';
|
'';
|
||||||
default = { pkgs, checked ? false }: {
|
default = { pkgs, checked ? false }:
|
||||||
destroyScript = (diskoLib.writeCheckedBash { inherit pkgs checked; }) "disko-destroy" ''
|
let
|
||||||
export PATH=${lib.makeBinPath (with pkgs; [
|
throwIfNoDisksDetected = _: v: if devices.disk == { } then throw "No disks defined, did you forget to import your disko config?" else v;
|
||||||
util-linux
|
in
|
||||||
e2fsprogs
|
mapAttrs throwIfNoDisksDetected {
|
||||||
mdadm
|
destroyScript = (diskoLib.writeCheckedBash { inherit pkgs checked; }) "disko-destroy" ''
|
||||||
zfs
|
export PATH=${lib.makeBinPath (with pkgs; [
|
||||||
lvm2
|
util-linux
|
||||||
bash
|
e2fsprogs
|
||||||
jq
|
mdadm
|
||||||
gnused
|
zfs
|
||||||
gawk
|
lvm2
|
||||||
coreutils-full
|
bash
|
||||||
])}:$PATH
|
jq
|
||||||
${cfg.config._destroy}
|
gnused
|
||||||
'';
|
gawk
|
||||||
|
coreutils-full
|
||||||
|
])}:$PATH
|
||||||
|
${cfg.config._destroy}
|
||||||
|
'';
|
||||||
|
|
||||||
formatScript = (diskoLib.writeCheckedBash { inherit pkgs checked; }) "disko-format" ''
|
formatScript = (diskoLib.writeCheckedBash { inherit pkgs checked; }) "disko-format" ''
|
||||||
export PATH=${lib.makeBinPath (cfg.config._packages pkgs)}:$PATH
|
export PATH=${lib.makeBinPath (cfg.config._packages pkgs)}:$PATH
|
||||||
${cfg.config._create}
|
${cfg.config._create}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
mountScript = (diskoLib.writeCheckedBash { inherit pkgs checked; }) "disko-mount" ''
|
mountScript = (diskoLib.writeCheckedBash { inherit pkgs checked; }) "disko-mount" ''
|
||||||
export PATH=${lib.makeBinPath (cfg.config._packages pkgs)}:$PATH
|
export PATH=${lib.makeBinPath (cfg.config._packages pkgs)}:$PATH
|
||||||
${cfg.config._mount}
|
${cfg.config._mount}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
diskoScript = (diskoLib.writeCheckedBash { inherit pkgs checked; }) "disko" ''
|
diskoScript = (diskoLib.writeCheckedBash { inherit pkgs checked; }) "disko" ''
|
||||||
export PATH=${lib.makeBinPath ((cfg.config._packages pkgs) ++ [ pkgs.bash ])}:$PATH
|
export PATH=${lib.makeBinPath ((cfg.config._packages pkgs) ++ [ pkgs.bash ])}:$PATH
|
||||||
${cfg.config._disko}
|
${cfg.config._disko}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# These are useful to skip copying executables uploading a script to an in-memory installer
|
# These are useful to skip copying executables uploading a script to an in-memory installer
|
||||||
destroyScriptNoDeps = (diskoLib.writeCheckedBash { inherit pkgs checked; noDeps = true; }) "disko-destroy" ''
|
destroyScriptNoDeps = (diskoLib.writeCheckedBash { inherit pkgs checked; noDeps = true; }) "disko-destroy" ''
|
||||||
${cfg.config._destroy}
|
${cfg.config._destroy}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
formatScriptNoDeps = (diskoLib.writeCheckedBash { inherit pkgs checked; noDeps = true; }) "disko-format" ''
|
formatScriptNoDeps = (diskoLib.writeCheckedBash { inherit pkgs checked; noDeps = true; }) "disko-format" ''
|
||||||
${cfg.config._create}
|
${cfg.config._create}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
mountScriptNoDeps = (diskoLib.writeCheckedBash { inherit pkgs checked; noDeps = true; }) "disko-mount" ''
|
mountScriptNoDeps = (diskoLib.writeCheckedBash { inherit pkgs checked; noDeps = true; }) "disko-mount" ''
|
||||||
${cfg.config._mount}
|
${cfg.config._mount}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
diskoScriptNoDeps = (diskoLib.writeCheckedBash { inherit pkgs checked; noDeps = true; }) "disko" ''
|
diskoScriptNoDeps = (diskoLib.writeCheckedBash { inherit pkgs checked; noDeps = true; }) "disko" ''
|
||||||
${cfg.config._disko}
|
${cfg.config._disko}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
_destroy = lib.mkOption {
|
_destroy = lib.mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
|
|
40
module.nix
40
module.nix
|
@ -192,10 +192,19 @@ in
|
||||||
visible = "shallow";
|
visible = "shallow";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkMerge [
|
config = {
|
||||||
(lib.mkIf (cfg.devices.disk != { }) {
|
_module.args.diskoLib = import ./lib {
|
||||||
system.build = (cfg.devices._scripts { inherit pkgs; checked = cfg.checkScripts; }) // {
|
inherit lib;
|
||||||
|
rootMountPoint = config.disko.rootMountPoint;
|
||||||
|
makeTest = import (pkgs.path + "/nixos/tests/make-test-python.nix");
|
||||||
|
eval-config = import (pkgs.path + "/nixos/lib/eval-config.nix");
|
||||||
|
};
|
||||||
|
|
||||||
|
system.build = (cfg.devices._scripts { inherit pkgs; checked = cfg.checkScripts; }) // (
|
||||||
|
let
|
||||||
|
throwIfNoDisksDetected = _: v: if cfg.devices.disk == { } then throw "No disks defined, did you forget to import your disko config?" else v;
|
||||||
|
in
|
||||||
|
lib.mapAttrs throwIfNoDisksDetected {
|
||||||
# we keep these old outputs for compatibility
|
# we keep these old outputs for compatibility
|
||||||
disko = builtins.trace "the .disko output is deprecated, please use .diskoScript instead" (cfg.devices._scripts { inherit pkgs; }).diskoScript;
|
disko = builtins.trace "the .disko output is deprecated, please use .diskoScript instead" (cfg.devices._scripts { inherit pkgs; }).diskoScript;
|
||||||
diskoNoDeps = builtins.trace "the .diskoNoDeps output is deprecated, please use .diskoScriptNoDeps instead" (cfg.devices._scripts { inherit pkgs; }).diskoScriptNoDeps;
|
diskoNoDeps = builtins.trace "the .diskoNoDeps output is deprecated, please use .diskoScriptNoDeps instead" (cfg.devices._scripts { inherit pkgs; }).diskoScriptNoDeps;
|
||||||
|
@ -211,22 +220,13 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
vmWithDisko = lib.mkDefault config.virtualisation.vmVariantWithDisko.system.build.vmWithDisko;
|
vmWithDisko = lib.mkDefault config.virtualisation.vmVariantWithDisko.system.build.vmWithDisko;
|
||||||
};
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
# we need to specify the keys here, so we don't get an infinite recursion error
|
||||||
# we need to specify the keys here, so we don't get an infinite recursion error
|
# Remember to add config keys here if they are added to types
|
||||||
# Remember to add config keys here if they are added to types
|
fileSystems = lib.mkIf cfg.enableConfig cfg.devices._config.fileSystems or { };
|
||||||
fileSystems = lib.mkIf cfg.enableConfig cfg.devices._config.fileSystems or { };
|
boot = lib.mkIf cfg.enableConfig cfg.devices._config.boot or { };
|
||||||
boot = lib.mkIf cfg.enableConfig cfg.devices._config.boot or { };
|
swapDevices = lib.mkIf cfg.enableConfig cfg.devices._config.swapDevices or [ ];
|
||||||
swapDevices = lib.mkIf cfg.enableConfig cfg.devices._config.swapDevices or [ ];
|
};
|
||||||
})
|
|
||||||
{
|
|
||||||
_module.args.diskoLib = import ./lib {
|
|
||||||
inherit lib;
|
|
||||||
rootMountPoint = config.disko.rootMountPoint;
|
|
||||||
makeTest = import (pkgs.path + "/nixos/tests/make-test-python.nix");
|
|
||||||
eval-config = import (pkgs.path + "/nixos/lib/eval-config.nix");
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue