diff options
| author | Alejandro Soto <alejandro@34project.org> | 2024-07-14 17:53:13 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2024-07-15 09:34:00 -0600 |
| commit | 02abf4ed0131237c25e0a10db50fa4c41a902a50 (patch) | |
| tree | 20904894fc0952806e341cdaff5941e81b3ce51c /sys/btrfs/mounts.nix | |
| parent | 08e746700341dda3e3bdf704332fc3c07053d3e7 (diff) | |
sys: final merge of dmz, hv into sys
Diffstat (limited to 'sys/btrfs/mounts.nix')
| -rw-r--r-- | sys/btrfs/mounts.nix | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/sys/btrfs/mounts.nix b/sys/btrfs/mounts.nix new file mode 100644 index 0000000..133f08f --- /dev/null +++ b/sys/btrfs/mounts.nix @@ -0,0 +1,39 @@ +{ lib, config, pkgs, ... }: +with lib; let + cfg = config.local.btrfs; +in +{ + options.local.btrfs = { + mounts = mkOption { + default = { }; + + type = with lib.types; attrsOf (submodule { + options = { + ssd = mkOption { + type = bool; + }; + + device = mkOption { + type = str; + }; + + subvol = mkOption { + type = str; + }; + }; + }); + }; + }; + + config = mkIf (cfg.mounts != { }) { + fileSystems = + let + btrfsMount = { device, subvol, ssd }: { + inherit device; + fsType = "btrfs"; + options = [ "noatime" "compress=zstd" "subvol=${subvol}" ] ++ optional ssd "ssd"; + }; + in + mapAttrs (_: btrfsMount) cfg.mounts; + }; +} |
