mactop: 0.1.9 -> 0.2.3 (#370511)
[NixPkgs.git] / pkgs / by-name / up / upbound / package.nix
blob0315f9600493349ebb9ae56abcd5feff1f74c554
2   lib,
3   fetchurl,
4   installShellFiles,
5   versionCheckHook,
6   stdenvNoCC,
7   version-channel ? "stable",
8 }:
9 let
10   inherit (stdenvNoCC.hostPlatform) system;
11   sources =
12     if "${version-channel}" == "main" then import ./sources-main.nix else import ./sources-stable.nix;
13   arch = sources.archMap.${system};
16 stdenvNoCC.mkDerivation {
17   pname = if "${version-channel}" == "main" then "upbound-main" else "upbound";
18   version = sources.version;
19   srcs = [
20     (fetchurl {
21       url = sources.fetchurlAttrSet.${system}.docker-credential-up.url;
22       sha256 = sources.fetchurlAttrSet.${system}.docker-credential-up.hash;
23     })
25     (fetchurl {
26       url = sources.fetchurlAttrSet.${system}.up.url;
27       sha256 = sources.fetchurlAttrSet.${system}.up.hash;
28     })
29   ];
31   sourceRoot = ".";
33   nativeBuildInputs = [ installShellFiles ];
35   installPhase = ''
36     runHook preInstall
38     mkdir -p $out/bin
40     cp ./${arch}/up $out/bin/up
41     chmod +x $out/bin/up
43     cp ./${arch}/docker-credential-up $out/bin/docker-credential-up
44     chmod +x $out/bin/docker-credential-up
46     runHook postInstall
47   '';
49   postInstall = ''
50     installShellCompletion --bash --name up <(echo complete -C up up)
51   '';
53   versionCheckProgramArg = "version";
55   nativeInstallCheckInputs = [
56     versionCheckHook
57   ];
59   doCheck = false;
61   passthru.updateScript = [
62     ./update.sh
63     "${version-channel}"
64   ];
66   passthru.tests = {
67     versionCheck = versionCheckHook;
68   };
70   meta = {
71     description = "CLI for interacting with Upbound Cloud, Upbound Enterprise, and Universal Crossplane (UXP)";
72     homepage = "https://upbound.io";
73     license = lib.licenses.unfree;
74     maintainers = with lib.maintainers; [
75       lucperkins
76       jljox
77     ];
78     mainProgram = "up";
79     platforms = sources.platformList;
80   };