1{
2 lib,
3 buildGoModule,
4 fetchFromGitHub,
5 installShellFiles,
6 testers,
7 supabase-cli,
8 nix-update-script,
9}:
10
11buildGoModule rec {
12 pname = "supabase-cli";
13 version = "2.47.2";
14
15 src = fetchFromGitHub {
16 owner = "supabase";
17 repo = "cli";
18 rev = "v${version}";
19 hash = "sha256-o9UtQuBPQeq9coc+0cl3HKyA2SRkqlptVwdLwsvRutw=";
20 };
21
22 vendorHash = "sha256-n8u4roDibDTRFeqbsO/H1NqFSGaJrVPewdt4nQPmoRE=";
23
24 ldflags = [
25 "-s"
26 "-w"
27 "-X=github.com/supabase/cli/internal/utils.Version=${version}"
28 ];
29
30 subPackages = [ "." ];
31
32 doCheck = false; # tests are trying to connect to localhost
33
34 nativeBuildInputs = [ installShellFiles ];
35
36 postInstall = ''
37 mv $out/bin/{cli,supabase}
38
39 installShellCompletion --cmd supabase \
40 --bash <($out/bin/supabase completion bash) \
41 --fish <($out/bin/supabase completion fish) \
42 --zsh <($out/bin/supabase completion zsh)
43 '';
44
45 passthru = {
46 tests.version = testers.testVersion {
47 package = supabase-cli;
48 };
49 updateScript = nix-update-script { };
50 };
51
52 meta = with lib; {
53 description = "CLI for interacting with supabase";
54 homepage = "https://github.com/supabase/cli";
55 license = licenses.mit;
56 maintainers = with maintainers; [
57 gerschtli
58 kashw2
59 ];
60 mainProgram = "supabase";
61 };
62}