about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/admin/stripe-cli/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/admin/stripe-cli/default.nix78
1 files changed, 78 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix b/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix
new file mode 100644
index 000000000000..45fdbff60321
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix
@@ -0,0 +1,78 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, stdenv }:
+
+buildGoModule rec {
+  pname = "stripe-cli";
+  version = "1.17.2";
+
+  src = fetchFromGitHub {
+    owner = "stripe";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-MzzjrGtqbtZMvfL7dPAsKHF2ZTneSdtDuwHQQcyrQDw=";
+  };
+  vendorHash = "sha256-DYA6cu2KzEBZ4wsT7wjcdY1endQQOZlj2aOwu6iGLew=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/stripe/stripe-cli/pkg/version.Version=${version}"
+  ];
+
+  preCheck = ''
+    # the tests expect the Version ldflag not to be set
+    unset ldflags
+
+    # requires internet access
+    rm pkg/cmd/plugin_cmds_test.go
+    rm pkg/cmd/resources_test.go
+    rm pkg/cmd/root_test.go
+
+    # TODO: no clue why it's broken (1.17.1), remove for now.
+    rm pkg/login/client_login_test.go
+    rm pkg/git/editor_test.go
+    rm pkg/rpcservice/sample_create_test.go
+  '' + lib.optionalString (
+      # delete plugin tests on all platforms but exact matches
+      # https://github.com/stripe/stripe-cli/issues/850
+      ! lib.lists.any
+        (platform: lib.meta.platformMatch stdenv.hostPlatform platform)
+        [ "x86_64-linux" "x86_64-darwin" ]
+  ) ''
+    rm pkg/plugins/plugin_test.go
+  '';
+
+  postInstall = ''
+    installShellCompletion --cmd stripe \
+      --bash <($out/bin/stripe completion --write-to-stdout --shell bash) \
+      --zsh <($out/bin/stripe completion --write-to-stdout --shell zsh)
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/stripe --help
+    $out/bin/stripe --version | grep "${version}"
+    runHook postInstallCheck
+  '';
+
+  meta = with lib; {
+    homepage = "https://stripe.com/docs/stripe-cli";
+    changelog = "https://github.com/stripe/stripe-cli/releases/tag/v${version}";
+    description = "A command-line tool for Stripe";
+    longDescription = ''
+      The Stripe CLI helps you build, test, and manage your Stripe integration
+      right from the terminal.
+
+      With the CLI, you can:
+      Securely test webhooks without relying on 3rd party software
+      Trigger webhook events or resend events for easy testing
+      Tail your API request logs in real-time
+      Create, retrieve, update, or delete API objects.
+    '';
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ RaghavSood jk kashw2 ];
+    mainProgram = "stripe";
+  };
+}