Files
nixpkgs/pkgs/by-name/up/upbound/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

86 lines
2.0 KiB
Nix

{
lib,
fetchurl,
installShellFiles,
versionCheckHook,
stdenvNoCC,
version-channel ? "stable",
}:
let
inherit (stdenvNoCC.hostPlatform) system;
sources =
if "${version-channel}" == "main" then
lib.importJSON ./sources-main.json
else
lib.importJSON ./sources-stable.json;
arch = sources.archMap.${system};
in
stdenvNoCC.mkDerivation {
pname = if "${version-channel}" == "main" then "upbound-main" else "upbound";
version = sources.version;
srcs = [
(fetchurl {
url = sources.fetchurlAttrSet.docker-credential-up.${system}.url;
sha256 = sources.fetchurlAttrSet.docker-credential-up.${system}.hash;
})
(fetchurl {
url = sources.fetchurlAttrSet.up.${system}.url;
sha256 = sources.fetchurlAttrSet.up.${system}.hash;
})
];
sourceRoot = ".";
nativeBuildInputs = [ installShellFiles ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp ./${arch}/up $out/bin/up
chmod +x $out/bin/up
cp ./${arch}/docker-credential-up $out/bin/docker-credential-up
chmod +x $out/bin/docker-credential-up
runHook postInstall
'';
postInstall = ''
installShellCompletion --bash --name up <(echo complete -C up up)
'';
# FIXME: error when running `env -i up`:
# "up: error: $HOME is not defined"
doInstallCheck = false;
versionCheckProgram = "${placeholder "out"}/bin/up";
versionCheckProgramArg = "version";
nativeInstallCheckInputs = [
versionCheckHook
];
doCheck = false;
passthru.updateScript = [
./update
"${version-channel}"
];
meta = {
description = "CLI for interacting with Upbound Cloud, Upbound Enterprise, and Universal Crossplane (UXP)";
changelog = "https://docs.upbound.io/reference/cli/rel-notes/#whats-changed";
homepage = "https://upbound.io";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [
lucperkins
jljox
];
mainProgram = "up";
platforms = sources.platformList;
};
}