-
Notifications
You must be signed in to change notification settings - Fork 1
/
flake.nix
84 lines (76 loc) · 2.82 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
82
83
84
{
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
nixpkgs-master.url = "github:nixos/nixpkgs";
# pinned because https://github.com/NixOS/nixpkgs/issues/332957 breaks things
nixpkgs-pre-rust-180.url = "github:nixos/nixpkgs/c3392ad349a5227f4a3464dce87bcc5046692fce";
nixpkgs-24-05.url = "github:nixos/nixpkgs/24.05";
utils.url = "github:numtide/flake-utils";
filters.url = "github:numtide/nix-filter";
cottand = {
url = "github:cottand/home-nix";
inputs.nixpkgs.follows = "nixpkgs-master";
inputs.home-manager.follows = "home-manager";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs-master";
};
attic = {
url = "github:zhaofengli/attic";
inputs.nixpkgs.follows = "nixpkgs";
};
go-cache = {
url = "github:numtide/build-go-cache";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{ self, nixpkgs, cottand, home-manager, utils, attic, filters, go-cache, ... }:
let
overrides = final: prev:
let
preRust180Pkgs = (import inputs.nixpkgs-pre-rust-180 { system = prev.system; config.allowUnfree = true; });
goCachePkgs = go-cache.legacyPackages.${prev.system};
selfPkgs = self.legacyPackages.${prev.system};
pkgs2405 = (import inputs.nixpkgs-24-05 { system = prev.system; config.allowUnfree = true; });
in
{
inherit (goCachePkgs) buildGoCache get-external-imports;
inherit (selfPkgs) scripts util;
inherit (preRust180Pkgs) bws attic;
# unstable did not support darwin as of 11/10/24
inherit (pkgs2405) wrangler;
# vault-bin = (import inputs.nixpkgs-master { system = prev.system; config.allowUnfree = true; }).vault-bin;
};
overlays = [
overrides
attic.overlays.default
filters.overlays.default
];
in
(utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system overlays;
config.allowUnfree = true;
};
pkgsWithSelf = pkgs // { inherit self; };
in
rec {
legacyPackages.services = (import ./dev-go/services) pkgs;
legacyPackages.scripts = (import ./scripts) pkgsWithSelf;
legacyPackages.util = (import ./util.nix) pkgsWithSelf;
legacyPackages.images = (import ./images.nix) pkgsWithSelf;
packages = legacyPackages.scripts;
devShells.default = (import ./shell.nix) pkgsWithSelf;
checks = (import ./checks.nix) pkgsWithSelf;
formatter = pkgs.writeShellScriptBin "fmt" ''
${pkgs.nomad}/bin/nomad fmt
${pkgs.terraform}/bin/terraform fmt
'';
}
)) // {
colmena = (import ./hive.nix) (inputs // { inherit overlays; });
}
;
}