From 1ae314d39c96670d0db3d0610af6f2e0cf3d71b1 Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 18 Sep 2023 19:22:45 +0200 Subject: [PATCH] init clanModules.diskLayouts --- clanModules/diskLayouts/singleDiskExt4.nix | 44 ++++++++++++++++++++++ clanModules/flake-module.nix | 12 ++++++ flake.nix | 2 +- 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 clanModules/diskLayouts/singleDiskExt4.nix create mode 100644 clanModules/flake-module.nix diff --git a/clanModules/diskLayouts/singleDiskExt4.nix b/clanModules/diskLayouts/singleDiskExt4.nix new file mode 100644 index 00000000..0bbc45e0 --- /dev/null +++ b/clanModules/diskLayouts/singleDiskExt4.nix @@ -0,0 +1,44 @@ +{ config, lib, ... }: +{ + options.clan.diskLayouts.singleDiskExt4 = { + device = lib.mkOption { + type = lib.types.str; + example = "/dev/disk/by-id/ata-Samsung_SSD_850_EVO_250GB_S21PNXAGB12345"; + }; + }; + config.disko.devices = { + disk = { + main = { + type = "disk"; + device = config.clan.diskLayouts.singleDiskExt4.device; + content = { + type = "gpt"; + partitions = { + boot = { + size = "1M"; + type = "EF02"; # for grub MBR + }; + ESP = { + size = "512M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + }; + root = { + size = "100%"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + }; + }; + }; + }; + }; + }; +} + diff --git a/clanModules/flake-module.nix b/clanModules/flake-module.nix new file mode 100644 index 00000000..62505ef8 --- /dev/null +++ b/clanModules/flake-module.nix @@ -0,0 +1,12 @@ +{ self, lib, ... }: { + flake.clanModules = { + diskLayouts = lib.mapAttrs' + (name: _: lib.nameValuePair (lib.removeSuffix ".nix" name) { + imports = [ + self.inputs.disko.nixosModules.disko + ./diskLayouts/${name} + ]; + }) + (builtins.readDir ./diskLayouts); + }; +} diff --git a/flake.nix b/flake.nix index 7bd18b64..e9462e0f 100644 --- a/flake.nix +++ b/flake.nix @@ -24,12 +24,12 @@ "x86_64-linux" "aarch64-linux" ]; - flake.clanModules = { }; imports = [ ./checks/flake-module.nix ./devShell.nix ./formatter.nix ./templates/flake-module.nix + ./clanModules/flake-module.nix ./pkgs/flake-module.nix