summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlassulus <lassulus@lassul.us>2022-12-01 20:33:03 +0100
committerlassulus <lassulus@lassul.us>2022-12-01 20:33:03 +0100
commit25cc022282590f36ed2c3cb542774053d58dddc8 (patch)
tree2d372d2a79b3663e8653e0fc16fd436c75a12758
parent0f21bc31fe237ed1c9f8fdd3a0e8be633588302a (diff)
disko cli: add --no-deps mode
-rw-r--r--cli.nix25
-rw-r--r--default.nix18
-rwxr-xr-xdisko3
3 files changed, 38 insertions, 8 deletions
diff --git a/cli.nix b/cli.nix
index 72a1c3c..3295346 100644
--- a/cli.nix
+++ b/cli.nix
@@ -3,6 +3,7 @@
, flake ? null
, flakeAttr ? null
, diskoFile ? null
+, noDeps ? false
, ... }@args:
let
disko = import ./. { };
@@ -12,13 +13,23 @@ let
else
import diskoFile args;
- diskoEval = if (mode == "create") then
- disko.createScript diskFormat pkgs
- else if (mode == "mount") then
- disko.mountScript diskFormat pkgs
- else if (mode = "zap_create_mount") then
- disko.zapCreateMount diskFormat pkgs
+ diskoEval = if noDeps then
+ if (mode == "create") then
+ disko.createScriptNoDeps diskFormat pkgs
+ else if (mode == "mount") then
+ disko.mountScriptNoDeps diskFormat pkgs
+ else if (mode == "zap_create_mount") then
+ disko.zapCreateMountScriptNoDeps diskFormat pkgs
+ else
+ builtins.abort "invalid mode"
else
- builtins.abort "invalid mode"
+ if (mode == "create") then
+ disko.createScript diskFormat pkgs
+ else if (mode == "mount") then
+ disko.mountScript diskFormat pkgs
+ else if (mode == "zap_create_mount") then
+ disko.zapCreateMount diskFormat pkgs
+ else
+ builtins.abort "invalid mode"
;
in diskoEval
diff --git a/default.nix b/default.nix
index 03a6833..bc975a7 100644
--- a/default.nix
+++ b/default.nix
@@ -16,18 +16,34 @@ in {
types = types;
create = cfg: types.diskoLib.create (eval cfg).config.devices;
createScript = cfg: pkgs: pkgs.writeScript "disko-create" ''
+ #!/usr/bin/env bash
export PATH=${lib.makeBinPath (types.diskoLib.packages (eval cfg).config.devices pkgs)}
${types.diskoLib.create (eval cfg).config.devices}
'';
+ createScriptNoDeps = cfg: pkgs: pkgs.writeScript "disko-create" ''
+ #!/usr/bin/env bash
+ ${types.diskoLib.create (eval cfg).config.devices}
+ '';
mount = cfg: types.diskoLib.mount (eval cfg).config.devices;
mountScript = cfg: pkgs: pkgs.writeScript "disko-mount" ''
+ #!/usr/bin/env bash
export PATH=${lib.makeBinPath (types.diskoLib.packages (eval cfg).config.devices pkgs)}
${types.diskoLib.mount (eval cfg).config.devices}
'';
- zapCreateMount = cfg: pkgs: pkgs.writeScript "disko-zap-create-mount" ''
+ mountScriptNoDeps = cfg: pkgs: pkgs.writeScript "disko-mount" ''
+ #!/usr/bin/env bash
+ ${types.diskoLib.mount (eval cfg).config.devices}
+ '';
+ zapCreateMount = cfg: types.diskoLib.zapCreateMount (eval cfg).config.devices;
+ zapCreateMountScript = cfg: pkgs: pkgs.writeScript "disko-zap-create-mount" ''
+ #!/usr/bin/env bash
export PATH=${lib.makeBinPath (types.diskoLib.packages (eval cfg).config.devices pkgs)}
${types.diskoLib.zapCreateMount (eval cfg).config.devices}
'';
+ zapCreateMountScriptNoDeps = cfg: pkgs: pkgs.writeScript "disko-zap-create-mount" ''
+ #!/usr/bin/env bash
+ ${types.diskoLib.zapCreateMount (eval cfg).config.devices}
+ '';
config = cfg: { imports = types.diskoLib.config (eval cfg).config.devices; };
packages = cfg: types.diskoLib.packages (eval cfg).config.devices;
}
diff --git a/disko b/disko
index a48907f..7e4f0bf 100755
--- a/disko
+++ b/disko
@@ -72,6 +72,9 @@ while [[ $# -gt 0 ]]; do
--dry-run)
dry_run=y
;;
+ --no-deps)
+ nix_args+=(--arg noDeps true)
+ ;;
--show-trace)
nix_args+=("$1")
;;