-34
flake.lock
-34
flake.lock
···
1
1
{
2
2
"nodes": {
3
-
"flake-utils": {
4
-
"inputs": {
5
-
"systems": "systems"
6
-
},
7
-
"locked": {
8
-
"lastModified": 1731533236,
9
-
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
10
-
"owner": "numtide",
11
-
"repo": "flake-utils",
12
-
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
13
-
"type": "github"
14
-
},
15
-
"original": {
16
-
"owner": "numtide",
17
-
"repo": "flake-utils",
18
-
"type": "github"
19
-
}
20
-
},
21
3
"nixpkgs": {
22
4
"locked": {
23
5
"lastModified": 1767892417,
···
36
18
},
37
19
"root": {
38
20
"inputs": {
39
-
"flake-utils": "flake-utils",
40
21
"nixpkgs": "nixpkgs"
41
-
}
42
-
},
43
-
"systems": {
44
-
"locked": {
45
-
"lastModified": 1681028828,
46
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
47
-
"owner": "nix-systems",
48
-
"repo": "default",
49
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
50
-
"type": "github"
51
-
},
52
-
"original": {
53
-
"owner": "nix-systems",
54
-
"repo": "default",
55
-
"type": "github"
56
22
}
57
23
}
58
24
},
+64
-24
flake.nix
+64
-24
flake.nix
···
3
3
4
4
inputs = {
5
5
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
-
flake-utils.url = "github:numtide/flake-utils";
7
6
};
8
7
9
-
outputs = { self, nixpkgs, flake-utils }:
10
-
flake-utils.lib.eachDefaultSystem (system:
11
-
let
12
-
pkgs = nixpkgs.legacyPackages.${system};
13
-
in
14
-
{
15
-
devShells.default = pkgs.mkShell {
16
-
buildInputs = with pkgs; [
17
-
go_1_24
18
-
golangci-lint
19
-
gotools
20
-
gopls
21
-
delve
22
-
goreleaser
23
-
];
8
+
outputs =
9
+
{ self, nixpkgs }:
10
+
let
11
+
allSystems = [
12
+
"x86_64-linux" # 64-bit Intel/AMD Linux
13
+
"aarch64-linux" # 64-bit ARM Linux
14
+
"x86_64-darwin" # 64-bit Intel macOS
15
+
"aarch64-darwin" # 64-bit ARM macOS
16
+
];
17
+
forAllSystems =
18
+
f:
19
+
nixpkgs.lib.genAttrs allSystems (
20
+
system:
21
+
f {
22
+
pkgs = import nixpkgs { inherit system; };
23
+
}
24
+
);
25
+
in
26
+
{
27
+
packages = forAllSystems (
28
+
{ pkgs }:
29
+
{
30
+
default = pkgs.buildGoModule {
31
+
pname = "herald";
32
+
version = "0.1.0";
33
+
subPackages = [ "." ];
34
+
src = self;
35
+
vendorHash = "sha256-IE7JMJ4DehwYxrkh5YCgw7yWdybxtCCxWQO7M/u6bno=";
36
+
};
37
+
}
38
+
);
24
39
25
-
shellHook = ''
26
-
echo "Herald development environment"
27
-
echo "Go version: $(go version)"
28
-
echo "golangci-lint version: $(golangci-lint version)"
29
-
'';
30
-
};
31
-
}
32
-
);
40
+
devShells = forAllSystems (
41
+
{ pkgs }:
42
+
{
43
+
default = pkgs.mkShell {
44
+
buildInputs = with pkgs; [
45
+
go_1_24
46
+
gopls
47
+
gotools
48
+
go-tools
49
+
golangci-lint
50
+
delve
51
+
goreleaser
52
+
];
53
+
54
+
shellHook = ''
55
+
echo "Herald development environment"
56
+
echo "Go version: $(go version)"
57
+
echo "golangci-lint version: $(golangci-lint version)"
58
+
'';
59
+
};
60
+
}
61
+
);
62
+
63
+
apps = forAllSystems (
64
+
{ pkgs }:
65
+
{
66
+
default = {
67
+
type = "app";
68
+
program = "${self.packages.${pkgs.system}.default}/bin/herald";
69
+
};
70
+
}
71
+
);
72
+
};
33
73
}