-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflake.nix
More file actions
111 lines (103 loc) · 2.63 KB
/
Copy pathflake.nix
File metadata and controls
111 lines (103 loc) · 2.63 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
{
description = "ZenQy's nixos configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
secrets = {
# url = "/home/nixos/Documents/nixos-secrets";
url = "git+ssh://git@github.com/zenqy/nixos-secrets";
flake = false;
};
};
outputs =
{
self,
nixpkgs,
secrets,
}:
with builtins;
let
this = import ./pkgs;
systems = [
"x86_64-linux"
"aarch64-linux"
];
forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f system);
in
{
overlays.default = final: prev: this.overlay final prev;
packages = forAllSystems (
system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ self.overlays.default ];
config.allowUnfree = true;
config.allowUnsupportedSystem = true;
};
in
this.packages pkgs
);
apps = forAllSystems (
system:
let
pkgs = import nixpkgs { inherit system; };
home = import ./home {
inherit pkgs;
lib = nixpkgs.lib;
};
in
{
default = {
type = "app";
program = "${home.gen}";
meta.description = "将配置文件写入HOME";
};
}
);
nixosConfigurations =
let
category = filter (x: x != "deprecated") (attrNames (readDir ./hosts));
hosts = cate: attrNames (readDir ./hosts/${cate});
value =
cate: host:
let
system =
if
elem host [
"e20c"
"oect"
"osaka-arm"
"rock-5b"
]
then
"aarch64-linux"
else
"x86_64-linux";
in
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
secrets = import (secrets + "/secrets.nix");
};
modules = [
./hosts/${cate}/${host}
(import ./modules cate)
{
nixpkgs.overlays = [ self.overlays.default ];
nix.nixPath = [ "nixpkgs=${nixpkgs}" ];
networking.hostName = host;
}
];
};
in
listToAttrs (
concatMap (
cate:
map (host: {
name = host;
value = value cate host;
}) (hosts cate)
) category
);
};
}