chore!(util): clean up

Fix `hasDirectories`
Correctly detect `autoDarwinConfigurations` (did not check for `home`)
Decrease usage of `with`
Depend more on `lib` functions over custom implementations
Reindent correctly some code
This commit is contained in:
reo101 2023-04-23 02:39:34 +03:00
parent c58f383168
commit 46f6f90a0c
Signed by: reo101
GPG key ID: 675AA7EF13964ACB
2 changed files with 64 additions and 42 deletions

View file

@ -20,7 +20,7 @@ rec {
# NOTE: Implying `attrs` is the output of `recurseDir`
hasFiles = files: attrs:
builtins.all
(b: b)
lib.id
(builtins.map
(file:
builtins.hasAttr file attrs &&
@ -30,13 +30,15 @@ rec {
# NOTE: Implying `attrs` is the output of `recurseDir`
hasDirectories = directories: attrs:
builtins.all
(b: b)
lib.id
(builtins.map
(directory:
builtins.hasAttr directory attrs &&
builtins.getAttr directory attrs == "set")
lib.isAttrs (builtins.getAttr directory attrs))
directories);
and = lib.all lib.id;
# pkgs helpers
forEachSystem = lib.genAttrs [
"aarch64-linux"
@ -159,28 +161,35 @@ rec {
createConfigurations =
pred: mkHost: machines:
lib.foldAttrs
(acc: x: acc)
lib.const
[ ]
(builtins.attrValues
(builtins.mapAttrs
(system: hosts:
lib.attrsets.filterAttrs
(host: config: config != null)
(builtins.mapAttrs
lib.attrsets.filterAttrs
(host: config:
if (pred system host config)
then mkHost system host config
else null)
hosts))
config != null)
(builtins.mapAttrs
(host: config:
if (pred system host config)
then mkHost system host config
else null)
hosts))
machines));
# Configurations
autoNixosConfigurations =
createConfigurations
(system: host: config:
hasFiles
[ "configuration.nix" ]
config)
and
[
(hasFiles
[ "configuration.nix" ]
config)
(hasDirectories
[ "home" ]
config)
])
(system: host: config:
mkNixosHost
../machines/nixos/${system}/${host}
@ -194,9 +203,12 @@ rec {
autoNixOnDroidConfigurations =
createConfigurations
(system: host: config:
hasFiles
[ "configuration.nix" "home.nix" ]
config)
and
[
(hasFiles
[ "configuration.nix" "home.nix" ]
config)
])
(system: host: config:
mkNixOnDroidHost
../machines/nix-on-droid/${system}/${host}
@ -207,9 +219,15 @@ rec {
autoDarwinConfigurations =
createConfigurations
(system: host: config:
hasFiles
[ "configuration.nix" ]
config)
and
[
(hasFiles
[ "configuration.nix" ]
config)
(hasDirectories
[ "home" ]
config)
])
(system: host: config:
mkNixDarwinHost
../machines/nix-darwin/${system}/${host}
@ -223,9 +241,12 @@ rec {
autoHomeConfigurations =
createConfigurations
(system: host: config:
hasFiles
[ "home.nix" ]
config)
and
[
(hasFiles
[ "home.nix" ]
config)
])
(system: host: config:
mkHomeManagerHost
../machines/home-manager/${system}/${host}