refactor: cleaned up folds

This commit is contained in:
Nick 2024-11-04 12:54:00 -06:00
parent a114034e0e
commit 82eeb09127
2 changed files with 108 additions and 85 deletions

View file

@ -1,15 +1,17 @@
let let
modulesPath = ./modules; modulesPath = ./modules;
importFolder = name: {"${name}" = import (modulesPath + "/${name}");};
importFile = name: {"${name}" = import (modulesPath + "/${name}.nix");};
importMisc = name: {"misc-${name}" = import (modulesPath + "/misc/${name}.nix");};
modules = modules =
builtins.foldl' ( builtins.foldl' (
emptySet: importedModules: emptySet: importedModules:
emptySet // importedModules emptySet // importedModules
) {} (map importFolder [ ) {} (map
(name: {
"${name}" =
import (modulesPath
+ "/${name}");
})
[
"bat" "bat"
"firefox" "firefox"
"obs-studio" "obs-studio"
@ -19,7 +21,13 @@ let
// builtins.foldl' ( // builtins.foldl' (
emptySet: importedModules: emptySet: importedModules:
emptySet // importedModules emptySet // importedModules
) {} (map importFile [ ) {} (map
(name: {
"${name}" =
import (modulesPath
+ "/${name}.nix");
})
[
"bottom" "bottom"
"brave" "brave"
"direnv" "direnv"
@ -41,7 +49,13 @@ let
// builtins.foldl' ( // builtins.foldl' (
emptySet: importedModules: emptySet: importedModules:
emptySet // importedModules emptySet // importedModules
) {} (map importMisc [ ) {} (map
(name: {
"misc-${name}" =
import (modulesPath
+ "/misc/${name}.nix");
})
[
"android" "android"
"commandLine" "commandLine"
"desktop" "desktop"

View file

@ -1,20 +1,29 @@
let let
modulesPath = ./modules; modulesPath = ./modules;
importFolder = name: {"${name}" = import (modulesPath + "/${name}");};
importFile = name: {"${name}" = import (modulesPath + "/${name}.nix");};
modules = modules =
builtins.foldl' ( builtins.foldl' (
emptySet: importedModules: emptySet: importedModules:
emptySet // importedModules emptySet // importedModules
) {} (map importFolder [ ) {} (map
(name: {
"${name}" =
import (modulesPath
+ "/${name}");
})
[
"services" "services"
]) ])
// builtins.foldl' ( // builtins.foldl' (
emptySet: importedModules: emptySet: importedModules:
emptySet // importedModules emptySet // importedModules
) {} (map importFile [ ) {} (map
(name: {
"${name}" =
import (modulesPath
+ "/${name}.nix");
})
[
"accounts" "accounts"
"android" "android"
"audio" "audio"