{ lib, stdenv, buildGoModule, fetchFromGitHub, makeWrapper, installShellFiles, xz, go, }: buildGoModule rec { pname = "mender-cli"; version = "1.12.0"; src = fetchFromGitHub { owner = "mendersoftware"; repo = "mender-cli"; rev = version; sha256 = "0i0lijlj82irc54l2ljgj5c4z7r0l8kywcf8c9kmjw6p670kpzrx"; }; vendorHash = "sha256-MqyBa+wsbuXqtM4DL/QGBUWuEYlG8BRxIXq7O1LJUyM="; nativeBuildInputs = [ makeWrapper installShellFiles ]; buildInputs = [ xz ]; allowGoReference = true; postFixup = '' wrapProgram "$out/bin/mender-cli" \ --prefix PATH : ${go}/bin ''; postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' installShellCompletion --cmd mender-cli \ --bash <($out/bin/mender-cli completion bash) \ --fish <($out/bin/mender-cli completion fish) \ --zsh <($out/bin/mender-cli completion zsh) \ # Ironically, mender-cli still uses old, slightly buggy completion code # This will correct the #compdef tag and add separate compdef line # allowing direct sourcing to also activate the completion substituteInPlace "$out/share/zsh/site-functions/_mender-cli" \ --replace-fail '#compdef _mender-cli mender-cli' "#compdef mender-cli''\ncompdef _mender-cli mender-cli" ''; meta = { description = "Mender CLI tool to simplify integration between the Mender server and cloud services like continuous integration (CI)/build automation"; mainProgram = "mender-cli"; homepage = "https://github.com/mendersoftware/mender-cli/"; changelog = "https://github.com/mendersoftware/mender-cli/releases/tag/${version}"; license = lib.licenses.asl20; }; }