diff --git a/pkgs/development/tools/extism-cli/default.nix b/pkgs/development/tools/extism-cli/default.nix index a7999fcaeb49..807632ab77b1 100644 --- a/pkgs/development/tools/extism-cli/default.nix +++ b/pkgs/development/tools/extism-cli/default.nix @@ -1,37 +1,43 @@ -{ lib, stdenvNoCC, fetchFromGitHub, python3, makeBinaryWrapper }: +{ + lib +, buildGoModule +, fetchFromGitHub +, installShellFiles +}: -stdenvNoCC.mkDerivation rec { +buildGoModule rec { pname = "extism-cli"; - version = "0.1.0"; + version = "0.3.8"; src = fetchFromGitHub { owner = "extism"; repo = "cli"; - rev = "97935786166e82154266b82410028482800e6061"; - sha256 = "sha256-LRzXuZQt5h3exw43UXUwLVIhveYVFw/SQ2YtHI9ZnWc="; + rev = "refs/tags/v${version}"; + hash = "sha256-StMipPMLSQzrhWv0yoKkNiuHMRW7QIhmVZ/M27WDWrM="; }; - buildInputs = [ python3 ]; - nativeBuildInputs = [ makeBinaryWrapper ]; + modRoot = "./extism"; - installPhase = '' - runHook preInstall + vendorHash = "sha256-sSKiwYT5EP0FQJbhgv9ZFDwwwvIJ66yMULbj529AZwY="; - install -D -m 755 ./extism_cli/__init__.py "$out/bin/extism" + nativeBuildInputs = [ installShellFiles ]; - # The extism cli tries by default to install a library and header into /usr/local which does not work on NixOS. - # Pass a reasonable writable directory which can still be overwritten with another --prefix argument. - wrapProgram "$out/bin/extism" \ - --add-flags '--prefix $HOME/.local' + doCheck = false; # Tests require network access - runHook postInstall + postInstall = '' + local INSTALL="$out/bin/extism" + installShellCompletion --cmd extism \ + --bash <($out/bin/containerlab completion bash) \ + --fish <($out/bin/containerlab completion fish) \ + --zsh <($out/bin/containerlab completion zsh) ''; meta = with lib; { description = "The extism CLI is used to manage Extism installations"; homepage = "https://github.com/extism/cli"; license = licenses.bsd3; - maintainers = with maintainers; [ ]; + maintainers = with maintainers; [ zshipko ]; + mainProgram = "extism"; platforms = platforms.all; }; }