1{
2 lib,
3 buildGoModule,
4 fetchFromGitHub,
5 installShellFiles,
6}:
7
8let
9 pname = "openfga-cli";
10 version = "0.7.2";
11in
12
13buildGoModule {
14 inherit pname version;
15
16 src = fetchFromGitHub {
17 owner = "openfga";
18 repo = "cli";
19 rev = "v${version}";
20 hash = "sha256-k/YDomfOn658j4XZKPV9BZZSQBnJdNJOUF6SONmESqY=";
21 };
22
23 vendorHash = "sha256-v9zzPl80TsOfYfc764aVpuflj7I4eZOa9PTCjX7dL/4=";
24
25 nativeBuildInputs = [ installShellFiles ];
26
27 ldflags =
28 let
29 buildInfoPkg = "github.com/openfga/cli/internal/build";
30 in
31 [
32 "-s"
33 "-w"
34 "-X ${buildInfoPkg}.Version=${version}"
35 "-X ${buildInfoPkg}.Commit=${version}"
36 "-X ${buildInfoPkg}.Date=19700101"
37 ];
38
39 postInstall = ''
40 completions_dir=$TMPDIR/fga_completions
41 mkdir $completions_dir
42 $out/bin/fga completion bash > $completions_dir/fga.bash
43 $out/bin/fga completion zsh > $completions_dir/_fga.zsh
44 $out/bin/fga completion fish > $completions_dir/fga.fish
45 installShellCompletion $completions_dir/*
46 '';
47
48 meta = {
49 description = "Cross-platform CLI to interact with an OpenFGA server";
50 homepage = "https://github.com/openfga/cli";
51 license = lib.licenses.asl20;
52 mainProgram = "fga";
53 maintainers = with lib.maintainers; [ jlesquembre ];
54 };
55}