Restructure partition config
This commit is contained in:
parent
7cf715f4d8
commit
03e42c5578
6 changed files with 53 additions and 22 deletions
27
lib/modules/fileSystems.nix
Normal file
27
lib/modules/fileSystems.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) types mkOption;
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
./partition/disks.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
options = {
|
||||||
|
valhalla = {
|
||||||
|
fileSystems = {
|
||||||
|
script = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "The script for preparing the system's mounts.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
valhalla = {
|
||||||
|
fileSystems = {
|
||||||
|
script = config.valhalla.fileSystems.diskSetup.script;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -291,14 +291,15 @@ in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
valhalla = {
|
valhalla = {
|
||||||
partition = {
|
fileSystems = {
|
||||||
rootDir = mkOption {
|
rootDir = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = "The root of the installation directory to mount disks into.";
|
description = "The root of the installation directory to mount disks into.";
|
||||||
default = "/mnt";
|
default = "/mnt";
|
||||||
};
|
};
|
||||||
|
|
||||||
os = mkOption {
|
diskSetup = {
|
||||||
|
osDisk = mkOption {
|
||||||
type = mkDiskType true;
|
type = mkDiskType true;
|
||||||
description = "The partition layout of the OS disk.";
|
description = "The partition layout of the OS disk.";
|
||||||
};
|
};
|
||||||
|
@ -316,17 +317,19 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
valhalla = {
|
valhalla = {
|
||||||
partition = {
|
fileSystems.diskSetup = {
|
||||||
script = lib.mkDefault (
|
script = lib.mkDefault (
|
||||||
let
|
let
|
||||||
cfg = config.valhalla.partition;
|
cfg = config.valhalla.fileSystems;
|
||||||
inherit (cfg) os rootDir;
|
inherit (cfg) rootDir;
|
||||||
|
inherit (cfg.diskSetup) osDisk;
|
||||||
inherit (lib.strings) normalizePath;
|
inherit (lib.strings) normalizePath;
|
||||||
partPath = part: "/dev/disk/by-label/${part.label}";
|
partPath = part: "/dev/disk/by-label/${part.label}";
|
||||||
disks = ([ os ] ++ (builtins.attrValues cfg.disks));
|
disks = ([ osDisk ] ++ (builtins.attrValues cfg.diskSetup.disks));
|
||||||
partitions = (builtins.concatMap (_: (builtins.attrValues _.partitions)) disks);
|
partitions = (builtins.concatMap (_: (builtins.attrValues _.partitions)) disks);
|
||||||
|
|
||||||
mountScript = lib.strings.concatLines (builtins.concatMap
|
mountScript = lib.strings.concatLines (builtins.concatMap
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
let inherit (lib) mkOption types;
|
let inherit (lib) mkOption types;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
|
./fileSystems.nix
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./i18n.nix
|
./i18n.nix
|
||||||
./os.nix
|
./os.nix
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
partition.os.partitions = {
|
fileSystems.diskSetup.osDisk.partitions = {
|
||||||
# Keep Windows' boot partition
|
# Keep Windows' boot partition
|
||||||
Boot.keepExisting = true;
|
Boot.keepExisting = true;
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@ in {
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
valhalla = {
|
valhalla = {
|
||||||
partition = {
|
fileSystems.diskSetup = {
|
||||||
os = {
|
osDisk = {
|
||||||
partitions = {
|
partitions = {
|
||||||
Boot = {
|
Boot = {
|
||||||
index = 1;
|
index = 1;
|
||||||
|
|
|
@ -5,8 +5,8 @@ in {
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
valhalla = {
|
valhalla = {
|
||||||
partition = {
|
fileSystems.diskSetup = {
|
||||||
os = {
|
osDisk = {
|
||||||
partitions = {
|
partitions = {
|
||||||
Boot = {
|
Boot = {
|
||||||
index = 1;
|
index = 1;
|
||||||
|
|
Loading…
Reference in a new issue