summary refs log tree commit diff
path: root/pkgs/tools/admin/exoscale-cli
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/admin/exoscale-cli')
-rw-r--r--pkgs/tools/admin/exoscale-cli/default.nix33
1 files changed, 33 insertions, 0 deletions
diff --git a/pkgs/tools/admin/exoscale-cli/default.nix b/pkgs/tools/admin/exoscale-cli/default.nix
new file mode 100644
index 00000000000..f1a420b0c10
--- /dev/null
+++ b/pkgs/tools/admin/exoscale-cli/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "exoscale-cli";
+  version = "1.52.0";
+
+  src = fetchFromGitHub {
+    owner  = "exoscale";
+    repo   = "cli";
+    rev    = "v${version}";
+    sha256 = "sha256-uaJt1QS4nDVliIFo11OhQYvOxJMeda0QGuaGZCPRoWk=";
+  };
+
+  goPackagePath = "github.com/exoscale/cli";
+
+  ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${src.rev}" ];
+
+  # ensures only the cli binary is built and we don't clutter bin/ with submodules
+  subPackages = [ "." ];
+
+  # we need to rename the resulting binary but can't use buildFlags with -o here
+  # because these are passed to "go install" which does not recognize -o
+  postBuild = ''
+    mv go/bin/cli go/bin/exo
+  '';
+
+  meta = {
+    description = "Command-line tool for everything at Exoscale: compute, storage, dns";
+    homepage    = "https://github.com/exoscale/cli";
+    license     = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ dramaturg ];
+  };
+}