diff options
author | makefu <github@syntax-fehler.de> | 2015-10-01 18:49:34 +0200 |
---|---|---|
committer | makefu <github@syntax-fehler.de> | 2015-10-01 18:49:34 +0200 |
commit | 49c00cf74f778152f4aed943dedb7bbf283b16e7 (patch) | |
tree | 29946a2fedb005b68a417acf3ac04d6f858f8aa1 /default.nix | |
parent | 73aa31010415ac5f7bf86d2bb77099fc3097905a (diff) | |
parent | 4af4fa89e50c3769d9331608cec2e6752ceb4fcb (diff) |
Merge remote-tracking branch 'cd/master'
Diffstat (limited to 'default.nix')
-rw-r--r-- | default.nix | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/default.nix b/default.nix index 1c3341ba7..c6a635c29 100644 --- a/default.nix +++ b/default.nix @@ -1,36 +1,34 @@ -{ user-name, host-name }: +{ current-date +, current-host-name +, current-user-name +}: let lib = import <nixpkgs/lib>; krebs-modules-path = ./krebs/3modules; krebs-pkgs-path = ./krebs/5pkgs; - user-modules-path = ./. + "/${user-name}/3modules"; - user-pkgs-path = ./. + "/${user-name}/5pkgs"; + user-modules-path = ./. + "/${current-user-name}/3modules"; + user-pkgs-path = ./. + "/${current-user-name}/5pkgs"; out = - (lib.mapAttrs (k: v: mk-namespace (./. + "/${k}")) - (lib.filterAttrs - (k: v: !lib.hasPrefix "." k && v == "directory" && - builtins.pathExists (./. + "/${k}/1systems")) - (builtins.readDir ./.))); + lib.mapAttrs (_: builtins.getAttr "main") + (lib.filterAttrs (_: builtins.hasAttr "main") + (lib.mapAttrs + (k: v: + if lib.hasPrefix "." k || v != "directory" then + {} + else if builtins.pathExists (./. + "/${k}/default.nix") then + { main = import (./. + "/${k}"); } + else if builtins.pathExists (./. + "/${k}/1systems") then + { main = mk-namespace (./. + "/${k}"); } + else + {}) + (builtins.readDir ./.))); eval = path: import <nixpkgs/nixos/lib/eval-config.nix> { system = builtins.currentSystem; modules = [ - ({ config, ... }: - with import ./krebs/4lib { inherit lib; }; - { - options.krebs.exec.host = mkOption { - type = types.host; - default = config.krebs.hosts.${host-name}; - }; - options.krebs.exec.user = mkOption { - type = types.user; - default = config.krebs.users.${user-name}; - }; - } - ) path krebs-modules-path user-modules-path |