diff options
author | Jörg Thalheim <joerg@thalheim.io> | 2022-08-17 17:52:12 +0200 |
---|---|---|
committer | Jörg Thalheim <joerg@thalheim.io> | 2022-08-19 09:52:12 +0200 |
commit | fc568cf797fdc4a726e2d961aa41d0dad1bbd004 (patch) | |
tree | 604ac9dbbe507598caf37e4cfb9a7536235b6501 | |
parent | c40b0dc031f3cb32e86bff1f83760a75fa5c5b44 (diff) |
add flag support
-rw-r--r-- | example/config-gpt-bios.nix | 33 | ||||
-rw-r--r-- | example/config.nix | 1 | ||||
-rw-r--r-- | example/default.nix | 8 | ||||
-rw-r--r-- | lib/default.nix | 3 |
4 files changed, 42 insertions, 3 deletions
diff --git a/example/config-gpt-bios.nix b/example/config-gpt-bios.nix new file mode 100644 index 0000000..9dfcffa --- /dev/null +++ b/example/config-gpt-bios.nix @@ -0,0 +1,33 @@ +# Example to create a bios compatible gpt partition +{ + type = "devices"; + content = { + sda = { + type = "table"; + format = "gpt"; + partitions = [ + { + type = "partition"; + start = "0"; + end = "1M"; + part-type = "primary"; + flags = ["bios_grub"]; + content.type = "noop"; + } + { + type = "partition"; + # leave space for the grub aka BIOS boot + start = "1M"; + end = "100%"; + part-type = "primary"; + bootable = true; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + } + ]; + }; + }; +} diff --git a/example/config.nix b/example/config.nix index 199412d..1a64b1c 100644 --- a/example/config.nix +++ b/example/config.nix @@ -24,6 +24,7 @@ part-type = "primary"; start = "1024MiB"; end = "100%"; + flags = [ "bios_grub" ]; content = { type = "luks"; algo = "aes-xts..."; diff --git a/example/default.nix b/example/default.nix index f2826c9..bf8cd43 100644 --- a/example/default.nix +++ b/example/default.nix @@ -3,11 +3,13 @@ let # TODO: get rid of NIX_PATH dependency here pkgs = import <nixpkgs> {}; + cfg = import ./config.nix; + #cfg = import ./config-gpt-bios.nix; in with import ../lib { inherit (pkgs) lib;}; { - config = config (import ./config.nix); - create = create (import ./config.nix); - mount = mount (import ./config.nix); + config = config cfg; + create = create cfg; + mount = mount cfg; } diff --git a/lib/default.nix b/lib/default.nix index edc0062..66e667a 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -75,6 +75,9 @@ let { ${optionalString (x.bootable or false) '' parted -s ${q.device} set ${toString q.index} boot on ''} + ${concatMapStringsSep "" (flag: '' + parted -s ${q.device} set ${toString q.index} ${flag} on + '') (x.flags or [])} ${create-f { device = q.device + toString q.index; } x.content} ''; |