From e6be2231bc1a5cccb9fcef945c16db0495f3d252 Mon Sep 17 00:00:00 2001 From: muon Date: Wed, 8 Oct 2025 13:33:09 +0000 Subject: [PATCH 1/3] Add mender-cli --- hosts/murk/home.nix | 3 ++ hosts/murk/packages/mender-cli.nix | 49 ++++++++++++++++++++++++++++++ modules/home/terminal/tools.nix | 1 + 3 files changed, 53 insertions(+) create mode 100644 hosts/murk/packages/mender-cli.nix diff --git a/hosts/murk/home.nix b/hosts/murk/home.nix index c77adbf..b2326ab 100644 --- a/hosts/murk/home.nix +++ b/hosts/murk/home.nix @@ -7,6 +7,7 @@ ... }: let cfg = osConfig.mods; + mender-cli = lib.callPackage ./packages/mender-cli.nix {}; in { imports = [inputs.impermanence.homeManagerModules.impermanence]; @@ -30,6 +31,8 @@ in { alsa-utils rustdesk-flutter + # tools + mender-cli docker fish devenv diff --git a/hosts/murk/packages/mender-cli.nix b/hosts/murk/packages/mender-cli.nix new file mode 100644 index 0000000..68b4d1a --- /dev/null +++ b/hosts/murk/packages/mender-cli.nix @@ -0,0 +1,49 @@ +{ + lib, + stdenv, + buildGoModule, + fetchFromGitHub, + makeWrapper, + installShellFiles, + go, +}: +buildGoModule rec { + pname = "mender-cli"; + version = "1.12.0"; + + src = fetchFromGitHub { + owner = "mendersoftware"; + repo = "mender-cli"; + rev = "v${version}"; + sha256 = "0i0lijlj82irc54l2ljgj5c4z7r0l8kywcf8c9kmjw6p670kpzrx"; + }; + + vendorHash = lib.fakeHash; + + nativeBuildInputs = [ + makeWrapper + installShellFiles + ]; + + 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 mender-cli --generate-autocomplete) \ + --zsh <($out/bin/mender-cli mender-cli --generate-autocomplete) \ + ''; + + 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.apache; + maintainers = [lib.maintainers.ivankovnatsky]; + }; +} diff --git a/modules/home/terminal/tools.nix b/modules/home/terminal/tools.nix index eb93300..b3c00dd 100644 --- a/modules/home/terminal/tools.nix +++ b/modules/home/terminal/tools.nix @@ -84,6 +84,7 @@ in xclip just devenv + tealdeer ]; }; } From 3324cb9df52803cf40f5b128196176c167435adf Mon Sep 17 00:00:00 2001 From: muon Date: Wed, 8 Oct 2025 13:54:34 +0000 Subject: [PATCH 2/3] Fix mender-cli --- hosts/murk/home.nix | 3 +-- hosts/murk/packages/mender-cli.nix | 23 +++++++++++++++++------ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/hosts/murk/home.nix b/hosts/murk/home.nix index b2326ab..bdf4173 100644 --- a/hosts/murk/home.nix +++ b/hosts/murk/home.nix @@ -7,7 +7,6 @@ ... }: let cfg = osConfig.mods; - mender-cli = lib.callPackage ./packages/mender-cli.nix {}; in { imports = [inputs.impermanence.homeManagerModules.impermanence]; @@ -32,7 +31,6 @@ in { rustdesk-flutter # tools - mender-cli docker fish devenv @@ -42,6 +40,7 @@ in { go rainfrog tealdeer + (callPackage ./packages/mender-cli.nix {}) ] # Non-free Date: Wed, 8 Oct 2025 14:00:13 +0000 Subject: [PATCH 3/3] Update mender hash --- hosts/murk/packages/mender-cli.nix | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/hosts/murk/packages/mender-cli.nix b/hosts/murk/packages/mender-cli.nix index eafdbbe..fc24563 100644 --- a/hosts/murk/packages/mender-cli.nix +++ b/hosts/murk/packages/mender-cli.nix @@ -16,7 +16,7 @@ buildGoModule rec { owner = "mendersoftware"; repo = "mender-cli"; rev = version; - sha256 = "0i0lijlj82irc54l2ljgj5c4z7r0l8kywcf8c9kmjw6p670kpzrx"; + sha256 = "sha256-Pf87wTHXcFlnYsgx7ieiIJ9PWJFPUkFJYTkKJKmMFEQ="; }; vendorHash = "sha256-MqyBa+wsbuXqtM4DL/QGBUWuEYlG8BRxIXq7O1LJUyM="; @@ -42,12 +42,6 @@ buildGoModule rec { --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 = {