mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 09:07:21 +01:00
refactor: dynamic module generation
This commit is contained in:
parent
c5042ac840
commit
5753eb1e11
7 changed files with 14 additions and 110 deletions
|
|
@ -2070,33 +2070,7 @@ Note: The structure of generating the packages was changed in commit =2cf03a3 re
|
||||||
#+begin_src nix :tangle pkgs/default.nix
|
#+begin_src nix :tangle pkgs/default.nix
|
||||||
{ lib, pkgs, ... }:
|
{ lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
packageNames = [
|
packageNames = lib.swarselsystems.readNix "pkgs";
|
||||||
"pass-fuzzel"
|
|
||||||
"cura5"
|
|
||||||
"hm-specialisation"
|
|
||||||
"cdw"
|
|
||||||
"cdb"
|
|
||||||
"bak"
|
|
||||||
"timer"
|
|
||||||
"e"
|
|
||||||
"swarselcheck"
|
|
||||||
"waybarupdate"
|
|
||||||
"opacitytoggle"
|
|
||||||
"fs-diff"
|
|
||||||
"update-checker"
|
|
||||||
"github-notifications"
|
|
||||||
"screenshare"
|
|
||||||
"swarsel-bootstrap"
|
|
||||||
"swarsel-rebuild"
|
|
||||||
"swarsel-install"
|
|
||||||
"swarsel-postinstall"
|
|
||||||
"t2ts"
|
|
||||||
"ts2t"
|
|
||||||
"vershell"
|
|
||||||
"eontimer"
|
|
||||||
"project"
|
|
||||||
"fhs"
|
|
||||||
];
|
|
||||||
in
|
in
|
||||||
lib.swarselsystems.mkPackages packageNames pkgs
|
lib.swarselsystems.mkPackages packageNames pkgs
|
||||||
|
|
||||||
|
|
@ -3740,13 +3714,7 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a
|
||||||
#+begin_src nix :tangle modules/nixos/default.nix
|
#+begin_src nix :tangle modules/nixos/default.nix
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
let
|
let
|
||||||
moduleNames = [
|
moduleNames = lib.swarselsystems.readNix "modules/nixos";
|
||||||
"wallpaper"
|
|
||||||
"hardware"
|
|
||||||
"setup"
|
|
||||||
"server"
|
|
||||||
"input"
|
|
||||||
];
|
|
||||||
in
|
in
|
||||||
lib.swarselsystems.mkModules moduleNames "nixos"
|
lib.swarselsystems.mkModules moduleNames "nixos"
|
||||||
|
|
||||||
|
|
@ -3895,19 +3863,7 @@ This holds modules that are to be used on most hosts. These are also the most im
|
||||||
#+BEGIN_src nix :tangle modules/home/default.nix
|
#+BEGIN_src nix :tangle modules/home/default.nix
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
let
|
let
|
||||||
moduleNames = [
|
moduleNames = lib.swarselsystems.readNix "modules/home";
|
||||||
"laptop"
|
|
||||||
"hardware"
|
|
||||||
"monitors"
|
|
||||||
"input"
|
|
||||||
"nixos"
|
|
||||||
"setup"
|
|
||||||
"waybar"
|
|
||||||
"startup"
|
|
||||||
"wallpaper"
|
|
||||||
"filesystem"
|
|
||||||
"firefox"
|
|
||||||
];
|
|
||||||
in
|
in
|
||||||
lib.swarselsystems.mkModules moduleNames "home"
|
lib.swarselsystems.mkModules moduleNames "home"
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
@ -4451,6 +4407,7 @@ A breakdown of each function:
|
||||||
mkHalfHostConfigs = hosts: type: pkgs: lib.foldl (acc: set: acc // set) { } (lib.map (host: lib.swarselsystems.mkHalfHost host type pkgs) hosts);
|
mkHalfHostConfigs = hosts: type: pkgs: lib.foldl (acc: set: acc // set) { } (lib.map (host: lib.swarselsystems.mkHalfHost host type pkgs) hosts);
|
||||||
|
|
||||||
readHosts = type: lib.attrNames (builtins.readDir "${self}/hosts/${type}");
|
readHosts = type: lib.attrNames (builtins.readDir "${self}/hosts/${type}");
|
||||||
|
readNix = type: lib.filter (name: name != "default.nix") (lib.attrNames (builtins.readDir "${self}/${type}"));
|
||||||
|
|
||||||
mkApps = system: names: self: builtins.listToAttrs (map
|
mkApps = system: names: self: builtins.listToAttrs (map
|
||||||
(name: {
|
(name: {
|
||||||
|
|
@ -4473,7 +4430,7 @@ A breakdown of each function:
|
||||||
mkModules = names: type: builtins.listToAttrs (map
|
mkModules = names: type: builtins.listToAttrs (map
|
||||||
(name: {
|
(name: {
|
||||||
inherit name;
|
inherit name;
|
||||||
value = import "${self}/modules/${type}/${name}.nix";
|
value = import "${self}/modules/${type}/${name}";
|
||||||
})
|
})
|
||||||
names);
|
names);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,7 @@
|
||||||
mkHalfHostConfigs = hosts: type: pkgs: lib.foldl (acc: set: acc // set) { } (lib.map (host: lib.swarselsystems.mkHalfHost host type pkgs) hosts);
|
mkHalfHostConfigs = hosts: type: pkgs: lib.foldl (acc: set: acc // set) { } (lib.map (host: lib.swarselsystems.mkHalfHost host type pkgs) hosts);
|
||||||
|
|
||||||
readHosts = type: lib.attrNames (builtins.readDir "${self}/hosts/${type}");
|
readHosts = type: lib.attrNames (builtins.readDir "${self}/hosts/${type}");
|
||||||
|
readNix = type: lib.filter (name: name != "default.nix") (lib.attrNames (builtins.readDir "${self}/${type}"));
|
||||||
|
|
||||||
mkApps = system: names: self: builtins.listToAttrs (map
|
mkApps = system: names: self: builtins.listToAttrs (map
|
||||||
(name: {
|
(name: {
|
||||||
|
|
@ -74,7 +75,7 @@
|
||||||
mkModules = names: type: builtins.listToAttrs (map
|
mkModules = names: type: builtins.listToAttrs (map
|
||||||
(name: {
|
(name: {
|
||||||
inherit name;
|
inherit name;
|
||||||
value = import "${self}/modules/${type}/${name}.nix";
|
value = import "${self}/modules/${type}/${name}";
|
||||||
})
|
})
|
||||||
names);
|
names);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,5 @@
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
let
|
let
|
||||||
moduleNames = [
|
moduleNames = lib.swarselsystems.readNix "modules/home";
|
||||||
"laptop"
|
|
||||||
"hardware"
|
|
||||||
"monitors"
|
|
||||||
"input"
|
|
||||||
"nixos"
|
|
||||||
"setup"
|
|
||||||
"waybar"
|
|
||||||
"startup"
|
|
||||||
"wallpaper"
|
|
||||||
"filesystem"
|
|
||||||
"firefox"
|
|
||||||
];
|
|
||||||
in
|
in
|
||||||
lib.swarselsystems.mkModules moduleNames "home"
|
lib.swarselsystems.mkModules moduleNames "home"
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,5 @@
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
let
|
let
|
||||||
moduleNames = [
|
moduleNames = lib.swarselsystems.readNix "modules/nixos";
|
||||||
"wallpaper"
|
|
||||||
"hardware"
|
|
||||||
"setup"
|
|
||||||
"server"
|
|
||||||
"input"
|
|
||||||
];
|
|
||||||
in
|
in
|
||||||
lib.swarselsystems.mkModules moduleNames "nixos"
|
lib.swarselsystems.mkModules moduleNames "nixos"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.swarselsystems.isBtrfs = lib.mkEnableOption "use btrfs filesystem";
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.swarselsystems.impermanence = lib.mkEnableOption "use impermanence on this system";
|
|
||||||
}
|
|
||||||
|
|
@ -1,31 +1,5 @@
|
||||||
{ lib, pkgs, ... }:
|
{ lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
packageNames = [
|
packageNames = lib.swarselsystems.readNix "pkgs";
|
||||||
"pass-fuzzel"
|
|
||||||
"cura5"
|
|
||||||
"hm-specialisation"
|
|
||||||
"cdw"
|
|
||||||
"cdb"
|
|
||||||
"bak"
|
|
||||||
"timer"
|
|
||||||
"e"
|
|
||||||
"swarselcheck"
|
|
||||||
"waybarupdate"
|
|
||||||
"opacitytoggle"
|
|
||||||
"fs-diff"
|
|
||||||
"update-checker"
|
|
||||||
"github-notifications"
|
|
||||||
"screenshare"
|
|
||||||
"swarsel-bootstrap"
|
|
||||||
"swarsel-rebuild"
|
|
||||||
"swarsel-install"
|
|
||||||
"swarsel-postinstall"
|
|
||||||
"t2ts"
|
|
||||||
"ts2t"
|
|
||||||
"vershell"
|
|
||||||
"eontimer"
|
|
||||||
"project"
|
|
||||||
"fhs"
|
|
||||||
];
|
|
||||||
in
|
in
|
||||||
lib.swarselsystems.mkPackages packageNames pkgs
|
lib.swarselsystems.mkPackages packageNames pkgs
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue