{ lib, buildGo125Module, fetchFromGitHub, nix-update-script, versionCheckHook, dbus, }: buildGo125Module (finalAttrs: { pname = "upcloud-cli"; version = "3.23.0"; src = fetchFromGitHub { owner = "UpCloudLtd"; repo = "upcloud-cli"; tag = "v${finalAttrs.version}"; hash = "sha256-oATz3ZvOeFT0wJ7R69cleGdpD9ICWQVOINKelJguBR4="; }; vendorHash = "sha256-Q/FokLGjc65ptbouRT5L0bxPIzzctTo87oFu9qd/NHs="; ldflags = [ "-s -w -X github.com/UpCloudLtd/upcloud-cli/v3/internal/config.Version=${finalAttrs.version}" ]; subPackages = [ "cmd/upctl" "internal/*" ]; nativeCheckInputs = [ dbus ]; checkFlags = let skippedTests = [ "TestConfig_LoadKeyring" # Not equal: expected: "unittest_password" actual : "" ]; in [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ]; nativeInstallCheckInputs = [ versionCheckHook ]; versionCheckProgram = "${placeholder "out"}/bin/upctl"; versionCheckProgramArg = "version"; doInstallCheck = true; passthru.updateScript = nix-update-script { }; meta = { changelog = "https://github.com/UpCloudLtd/upcloud-cli/blob/refs/tags/v${finalAttrs.version}/CHANGELOG.md"; description = "Command-line tool for managing UpCloud services"; homepage = "https://github.com/UpCloudLtd/upcloud-cli"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ lu1a ]; mainProgram = "upctl"; }; })