{ buildGoModule , fetchFromGitHub , installShellFiles , lib , stdenv , testers , kubevela , nix-update-script }: buildGoModule rec { pname = "kubevela"; version = "1.9.9"; src = fetchFromGitHub { owner = "kubevela"; repo = "kubevela"; rev = "v${version}"; hash = "sha256-4OxkBN0hZ2wtZjU0aQVzhWtWd8kaCokT3WF82WeVS6U="; }; vendorHash = "sha256-fMo01CmPaNgvNcY8oG4rIGfYa+teKU3ETJsAaF14cnc="; ldflags = [ "-s" "-w" "-X github.com/oam-dev/kubevela/version.VelaVersion=${version}" ]; subPackages = [ "references/cmd/cli" ]; CGO_ENABLED = 0; # Workaround for permission issue in shell completion HOME = "$TMPDIR"; installPhase = '' runHook preInstall install -Dm755 "$GOPATH/bin/cli" -T $out/bin/vela runHook postInstall ''; nativeBuildInputs = [ installShellFiles ]; postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' installShellCompletion --cmd vela \ --bash <($out/bin/vela completion bash) \ --zsh <($out/bin/vela completion zsh) ''; passthru.tests.version = testers.testVersion { package = kubevela; command = "HOME=$TMPDIR vela version"; }; passthru.updateScript = nix-update-script { }; meta = { description = "An application delivery platform to deploy and operate applications in hybrid, multi-cloud environments"; downloadPage = "https://github.com/kubevela/kubevela"; homepage = "https://kubevela.io/"; license = lib.licenses.asl20; maintainers = [ ]; mainProgram = "vela"; }; }