flake/hosts/murk/packages/mender-cli.nix
2025-10-08 13:54:34 +00:00

60 lines
1.7 KiB
Nix

{
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;
};
}