-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflake.nix
81 lines (75 loc) · 1.97 KB
/
flake.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
70
71
72
73
74
75
76
77
78
79
80
81
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
systems.url = "github:nix-systems/default";
flake-parts.url = "github:hercules-ci/flake-parts";
};
outputs = {
systems,
nixpkgs,
flake-parts,
...
} @ inputs:
flake-parts.lib.mkFlake {inherit inputs;} ({withSystem, ...}: {
systems = import inputs.systems;
perSystem = {
pkgs,
self',
...
}: {
packages = {
default = self'.packages.prod;
prod = pkgs.callPackage ./nix/blog.nix {iosevka = self'.packages.fonts;};
staging = pkgs.callPackage ./nix/blog.nix {
iosevka = self'.packages.fonts;
buildDrafts = true;
};
dev = pkgs.callPackage ./nix/blog.nix {
buildDrafts = true;
buildFonts = false;
};
fonts = pkgs.callPackage ./nix/iosevka.nix {};
};
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
alejandra
bun
hugo
just
tailwindcss
nix-output-monitor
nodePackages.prettier
];
};
devShells.deploy = pkgs.mkShell {
buildInputs = [pkgs.netlify-cli];
};
};
flake.nixosConfigurations = let
mkBlog = tier: (withSystem "x86_64-linux" (
{
config,
system,
...
}:
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit tier;
inherit (config) packages;
};
modules = [./nix/server];
}
));
in {
blogProd = mkBlog "prod";
blogStaging = mkBlog "staging";
};
});
nixConfig = {
extra-substituters = ["https://cache.garnix.io"];
extra-trusted-public-keys = [
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
];
};
}