From 25cc022282590f36ed2c3cb542774053d58dddc8 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 1 Dec 2022 20:33:03 +0100 Subject: disko cli: add --no-deps mode --- cli.nix | 25 ++++++++++++++++++------- default.nix | 18 +++++++++++++++++- disko | 3 +++ 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") ;; -- cgit v1.2.3