summaryrefslogtreecommitdiff
path: root/lib/hosts.nix
diff options
context:
space:
mode:
Diffstat (limited to 'lib/hosts.nix')
-rw-r--r--lib/hosts.nix80
1 files changed, 0 insertions, 80 deletions
diff --git a/lib/hosts.nix b/lib/hosts.nix
deleted file mode 100644
index 91b6b40..0000000
--- a/lib/hosts.nix
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- pkgs,
- hostsDir ? ../hosts,
- commonImports ? [],
- pkgsPath ? ../pkgs,
- modules ? {},
- overlays ? {},
- profiles ? {},
- users ? {},
- sources ? {}
-}:
-
-with pkgs.lib;
-
-rec {
- hostNames = attrNames (
- filterAttrs (
- name: type: type == "directory"
- ) (
- builtins.readDir hostsDir
- )
- );
-
- hostConfig = hostName: { config, ... }: {
- _module.args = {
- inherit hosts groups;
- };
- imports = [
- (import (hostsDir + "/${hostName}/configuration.nix"))
- # urgh, yes, we still need to manually import the deploy module for now
- # at least if i want to keep my thing reusable.
- ../modules/deploy
- ] ++ commonImports;
- networking = {
- inherit hostName;
- };
- nixpkgs.pkgs =
- let pkgs = import pkgsPath {
- inherit (config.nixpkgs) config system;
- };
- in if pkgs ? nixpkgs then pkgs.nixpkgs else pkgs;
- };
-
- hosts = listToAttrs (
- map (
- hostName: nameValuePair hostName (
- import (pkgs.path + "/nixos/lib/eval-config.nix") {
- modules = [
- (hostConfig hostName)
- (if sources ? home-manager then sources.home-manager + "/nixos" else {})
- ];
- specialArgs = { inherit modules overlays profiles users sources; };
- }
- )
- ) hostNames
- );
-
- groupNames = unique (
- concatLists (
- mapAttrsToList (
- name: host: host.config.hexchen.deploy.groups
- ) hosts
- )
- );
-
- groups = listToAttrs (
- map (
- groupName: nameValuePair groupName (
- filter (
- host: elem groupName host.config.hexchen.deploy.groups
- ) (
- attrValues (
- filterAttrs (_: h: h.config.hexchen.deploy.enable) hosts
- )
- )
- )
- ) groupNames
- );
-}
-