1{ bash
2, buildGoModule
3, fetchFromGitHub
4, fish
5, lib
6, makeWrapper
7, xdg-utils
8}:
9
10buildGoModule rec {
11 pname = "granted";
12 version = "0.11.1";
13
14 src = fetchFromGitHub {
15 owner = "common-fate";
16 repo = pname;
17 rev = "v${version}";
18 sha256 = "sha256-m6cFAX8FMyv9H1IKm6meWu2yNEZz4g1Q+h2rRijYJsc=";
19 };
20
21 vendorSha256 = "sha256-8BPntTgd7QqO2T3vyWXC1z5yE/ovg3D3iilnislqV30=";
22
23 nativeBuildInputs = [ makeWrapper ];
24
25 ldflags = [
26 "-s"
27 "-w"
28 "-X github.com/common-fate/granted/internal/build.Version=v${version}"
29 "-X github.com/common-fate/granted/internal/build.Commit=${src.rev}"
30 "-X github.com/common-fate/granted/internal/build.Date=1970-01-01-00:00:01"
31 "-X github.com/common-fate/granted/internal/build.BuiltBy=Nix"
32 ];
33
34 subPackages = [
35 "cmd/granted"
36 ];
37
38 postInstall = ''
39 # Install shell script
40 install -Dm755 $src/scripts/assume $out/bin/assume
41 substituteInPlace $out/bin/assume \
42 --replace /bin/bash ${bash}/bin/bash
43
44 wrapProgram $out/bin/assume \
45 --suffix PATH : ${lib.makeBinPath [ xdg-utils ]}
46
47 # Install fish script
48 install -Dm755 $src/scripts/assume.fish $out/share/assume.fish
49 substituteInPlace $out/share/assume.fish \
50 --replace /bin/fish ${fish}/bin/fish
51 '';
52
53 meta = with lib; {
54 description = "The easiest way to access your cloud.";
55 homepage = "https://github.com/common-fate/granted";
56 changelog = "https://github.com/common-fate/granted/releases/tag/${version}";
57 license = licenses.mit;
58 maintainers = [ maintainers.ivankovnatsky ];
59 };
60}