-
Notifications
You must be signed in to change notification settings - Fork 0
/
default.nix
69 lines (57 loc) · 1.42 KB
/
default.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
{ ... }:
let
sources = import ./sources.nix;
pkgs = import sources.nixpkgs {
overlays = [
(import "${sources.lix.nixos-module}/overlay.nix" {
inherit (sources.lix) lix;
})
((import sources.nix-vscode-extensions).overlays.default)
(self: super: import ./pkgs {
pkgs = self;
inherit super sources;
})
];
config = {
allowUnfree = true;
};
localSystem = {
system = "x86_64-linux";
};
};
inherit (pkgs) lib;
mkModule = hostname: host: let
configuration = host.configuration or ./hosts/${hostname}/home.nix;
module = import "${sources.home-manager}/modules" {
configuration = { lib, ... }: {
imports = [
./modules
configuration
]
++ pkgs.nur.repos.kokakiwi.modules.home-manager.all-modules;
_module.args = {
pkgs = lib.mkForce pkgs;
};
};
inherit pkgs;
check = true;
extraSpecialArgs = {
inherit sources;
secretsPath = ./secrets;
} // (host.extraSpecialArgs or { });
};
env = {
inherit module sources;
inherit (module) config options pkgs;
inherit (module.pkgs) lib;
} // module.config.env;
in module.activationPackage // env // {
inherit env;
};
hosts = import ./hosts {
inherit pkgs lib;
};
in {
inherit sources pkgs lib;
hosts = lib.mapAttrs mkModule hosts;
}