funnier abstractions

This commit is contained in:
Gerg-L 2024-08-16 23:28:48 -04:00
parent 66091358d5
commit e30687954a
Signed by: gerg-l
SSH key fingerprint: SHA256:FPYDHIkvMocr4wdmZXpgpJjsb2Tw6rASs2ISPbOb0KI
6 changed files with 40 additions and 34 deletions

View file

@ -200,4 +200,6 @@
};
system.stateVersion = "24.11";
networking.hostName = "gerg-desktop";
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -39,4 +39,8 @@
edition = lib.mkForce "gerg-minimal";
isoName = lib.mkForce "NixOS";
};
system.stateVersion = "24.11";
networking.hostName = "gerg-iso";
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -76,6 +76,8 @@
];
system.stateVersion = "24.11";
networking.hostName = "media-laptop";
nixpkgs.hostPlatform = "x86_64-linux";
swapDevices = [
{

View file

@ -94,6 +94,7 @@
programs.command-not-found.enable = false;
programs.nano.enable = false;
###
nixpkgs.hostPlatform = "x86_64-linux";
system.stateVersion = "24.11";
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -167,39 +167,45 @@ rec {
(lib.foldAttrs lib.mergeAttrs { })
];
mkHosts =
system:
lib.flip lib.genAttrs (
hostName:
# Whats lib.nixosSystem? never heard of her
lib.evalModules {
mkHosts = wrench [
builtins.readDir
(lib.filterAttrs (_: v: v == "directory"))
builtins.attrNames
(map (x: {
name = x;
value = lib.evalModules {
specialArgs.modulesPath = "${unstable}/nixos/modules";
modules = builtins.concatLists [
(builtins.attrValues self.nixosModules)
(map addSchizophreniaToModule (listNixFilesRecursive "${self}/hosts/${hostName}"))
(map addSchizophreniaToModule (listNixFilesRecursive "${self}/hosts/${x}"))
(import "${unstable}/nixos/modules/module-list.nix")
(lib.singleton {
networking = {
inherit hostName;
};
nixpkgs.hostPlatform = system;
})
(lib.optionals (self.diskoConfigurations ? "disko-${hostName}") [
self.diskoConfigurations."disko-${hostName}"
(lib.optionals (self.diskoConfigurations ? "disko-${x}") [
self.diskoConfigurations."disko-${x}"
disko.nixosModules.default
])
];
}
);
mkDisko = wrench [
(map (name: {
name = "disko-${name}";
value.disko.devices = import "${self}/disko/${name}.nix" lib;
};
}))
builtins.listToAttrs
];
mkDisko =
path:
lib.pipe path [
builtins.readDir
(lib.filterAttrs (n: v: v == "regular" && lib.hasSuffix ".nix" n))
builtins.attrNames
(map (x: {
name = lib.pipe x [
(lib.removeSuffix path)
(lib.removeSuffix ".nix")
(x: "disko-${x}")
];
value.disko.devices = import "${path}/${x}" lib;
}))
builtins.listToAttrs
];
/*
/<name> -> packages named by directory
/<name>/call.nix -> callPackage override imported via import <file> pkgs

View file

@ -4,20 +4,11 @@ let
in
lib.gerg-utils (s: unstable.legacyPackages.${s}) {
inherit lib;
nixosConfigurations = lib.mkHosts "x86_64-linux" [
"gerg-desktop"
"media-laptop"
"iso"
"minecraft"
];
nixosConfigurations = lib.mkHosts "${self}/hosts";
nixosModules = lib.mkModules "${self}/modules";
diskoConfigurations = lib.mkDisko [
"gerg-desktop"
"media-laptop"
"minecraft"
];
diskoConfigurations = lib.mkDisko "${self}/disko";
formatter = pkgs: inputs.self.packages.${pkgs.stdenv.system}.lint;