Summary Files Commits Branches @commit @diff @stats
path: root / autoconfig.nix
diff options
context:
space:
mode:
Commitf087e4cda75ce0ab2dcf6f4a8dbcaad9ec876ede (patch)
Author
 Syndamia <kamen@syndamia.com>
2024-07-07 08:55:30 +0300
Committer
 Syndamia <kamen@syndamia.com>
2024-07-07 08:55:30 +0300
Files37d7d19aa83e5d2d7ab9370ddfda9091671d2972 /autoconfig.nix
nix-f087e4cda75ce0ab2dcf6f4a8dbcaad9ec876ede.tar
nix-f087e4cda75ce0ab2dcf6f4a8dbcaad9ec876ede.tar.gz
nix-f087e4cda75ce0ab2dcf6f4a8dbcaad9ec876ede.zip
Parent27b0e6bf1f4cc859d331d5c50030d8531c958452 (diff)
[all] Improved autoconfig-ing setup and added some configs
1 files changed, 17 insertions, 6 deletions
-rw-r--r--autoconfig.nix23
diff --git a/autoconfig.nix b/autoconfig.nix
index 0851514..5da9c3a 100644
--- a/autoconfig.nix
+++ b/autoconfig.nix
@@ -10,12 +10,23 @@ in {
inherit (import ./machines/${dir}/sysidentity.nix) sysidentity;
package-modules =
- lib.mapAttrsToList
- (_: module: module)
- (lib.filterAttrs
- (name: _:
- (lib.hasInfix "_" name) -> (lib.hasPrefix (sysidentity.type + "_") name))
- (import ./packages));
+ let
+ listget = attrname:
+ if sysidentity ? ${attrname}
+ then map
+ (v: ./modules + ("/" + v + (if lib.hasSuffix ".nix" v then "" else ".nix")))
+ sysidentity.${attrname}
+ else [];
+ havelist = listget "have";
+ droplist = listget "drop";
+ modulelist =
+ if (sysidentity ? defaultempty) && sysidentity.defaultempty
+ then []
+ else lib.mapAttrsToList
+ (name: _: ./modules + ("/" + name))
+ (lib.filterAttrs (_: type: type == "regular") (builtins.readDir ./modules));
+ in
+ lib.subtractLists droplist (havelist ++ modulelist);
inputs-overlays =
lib.mapAttrs