-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflake.nix
82 lines (74 loc) · 2.54 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
{
inputs = {
# Candidate channels
# - https://github.com/kachick/anylang-template/issues/17
# - https://discourse.nixos.org/t/differences-between-nix-channels/13998
# How to update the revision
# - `nix flake update --commit-lock-file` # https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake-update.html
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
};
outputs =
{ self, nixpkgs }:
let
forAllSystems = nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed;
in
rec {
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style);
devShells = forAllSystems (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
{
default =
with pkgs;
mkShell {
buildInputs = [
# https://github.com/NixOS/nix/issues/730#issuecomment-162323824
bashInteractive
nil
nixfmt-rfc-style
go_1_23
dprint
goreleaser
typos
go-task
];
};
}
);
packages = forAllSystems (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
version = "v1.1.9";
in
rec {
selfup = pkgs.buildGo123Module {
pname = "selfup";
src = pkgs.lib.cleanSource self;
version = version;
ldflags = [
"-X main.version=${version}"
"-X main.commit=${if (self ? rev) then self.rev else "0000000000000000000000000000000000000000"}"
];
# When updating go.mod or go.sum, update this sha together as following
# vendorHash = pkgs.lib.fakeHash; # Enable this and run `nix run . -- --version`, then you can get actual hash
vendorHash = "sha256-UVaXnn94f5O8E0bxTb2reHXF+PBUDYnUCYAsiA5VQCg=";
# https://github.com/kachick/times_kachick/issues/316
# TODO: Use env after nixos-25.05. See https://github.com/NixOS/nixpkgs/commit/905dc8d978b38b0439905cb5cd1faf79163e1f14#diff-b07c2e878ff713081760cd5dcf0b53bb98ee59515a22e6007cc3d974e404b220R24
CGO_ENABLED = 0;
meta.mainProgram = "selfup";
};
default = selfup;
}
);
# `nix run`
apps = forAllSystems (system: {
default = {
type = "app";
program = nixpkgs.lib.getExe packages.${system}.selfup;
};
});
};
}