upbound: 0.36.1 -> 0.37.0, upbound-main: 0.37.0-0.rc.0.38.g797e121 -> 0.38.0-0.rc.0.29.g59359e0

+216 -197
+10 -6
pkgs/by-name/up/upbound/package.nix
··· 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}; 14 15 in ··· 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 }) 24 25 (fetchurl { 26 - url = sources.fetchurlAttrSet.${system}.up.url; 27 - sha256 = sources.fetchurlAttrSet.${system}.up.hash; 28 }) 29 ]; 30 ··· 63 doCheck = false; 64 65 passthru.updateScript = [ 66 - ./update.sh 67 "${version-channel}" 68 ]; 69 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; [
··· 9 let 10 inherit (stdenvNoCC.hostPlatform) system; 11 sources = 12 + if "${version-channel}" == "main" then 13 + lib.importJSON ./sources-main.json 14 + else 15 + lib.importJSON ./sources-stable.json; 16 arch = sources.archMap.${system}; 17 18 in ··· 21 version = sources.version; 22 srcs = [ 23 (fetchurl { 24 + url = sources.fetchurlAttrSet.docker-credential-up.${system}.url; 25 + sha256 = sources.fetchurlAttrSet.docker-credential-up.${system}.hash; 26 }) 27 28 (fetchurl { 29 + url = sources.fetchurlAttrSet.up.${system}.url; 30 + sha256 = sources.fetchurlAttrSet.up.${system}.hash; 31 }) 32 ]; 33 ··· 66 doCheck = false; 67 68 passthru.updateScript = [ 69 + ./update 70 "${version-channel}" 71 ]; 72 73 meta = { 74 description = "CLI for interacting with Upbound Cloud, Upbound Enterprise, and Universal Crossplane (UXP)"; 75 + changelog = "https://docs.upbound.io/reference/cli/rel-notes/#whats-changed"; 76 homepage = "https://upbound.io"; 77 license = lib.licenses.unfree; 78 maintainers = with lib.maintainers; [
+53
pkgs/by-name/up/upbound/sources-main.json
···
··· 1 + { 2 + "archMap": { 3 + "aarch64-darwin": "darwin_arm64", 4 + "aarch64-linux": "linux_arm64", 5 + "x86_64-darwin": "darwin_amd64", 6 + "x86_64-linux": "linux_amd64" 7 + }, 8 + "fetchurlAttrSet": { 9 + "docker-credential-up": { 10 + "aarch64-darwin": { 11 + "hash": "sha256-3fx/wjBoFxmeo55QbRw9cl4GFCFehGpZeVAw1bvooSk=", 12 + "url": "https://cli.upbound.io/main/v0.38.0-0.rc.0.29.g59359e0/bundle/docker-credential-up/darwin_arm64.tar.gz" 13 + }, 14 + "aarch64-linux": { 15 + "hash": "sha256-FeF7D8WLpK8S6b7QCLaOI7Dm2EzbDqJVp9tfh13BJuU=", 16 + "url": "https://cli.upbound.io/main/v0.38.0-0.rc.0.29.g59359e0/bundle/docker-credential-up/linux_arm64.tar.gz" 17 + }, 18 + "x86_64-darwin": { 19 + "hash": "sha256-00y9wGMwu5ZsTzlNkSvdwEse5eV4xzLiwQjgSTnmW5w=", 20 + "url": "https://cli.upbound.io/main/v0.38.0-0.rc.0.29.g59359e0/bundle/docker-credential-up/darwin_amd64.tar.gz" 21 + }, 22 + "x86_64-linux": { 23 + "hash": "sha256-oObO/T/2yOFDaNVJGQCqna130Tyx/sEOCAQMDYhVlNI=", 24 + "url": "https://cli.upbound.io/main/v0.38.0-0.rc.0.29.g59359e0/bundle/docker-credential-up/linux_amd64.tar.gz" 25 + } 26 + }, 27 + "up": { 28 + "aarch64-darwin": { 29 + "hash": "sha256-Bf6O6rsth3D5h5olxqHxULuxxPtNhxP+gN69mJnlQTg=", 30 + "url": "https://cli.upbound.io/main/v0.38.0-0.rc.0.29.g59359e0/bundle/up/darwin_arm64.tar.gz" 31 + }, 32 + "aarch64-linux": { 33 + "hash": "sha256-svTHCjw2ZrTEscNpizOmg9leQAbzhWcPfst3nMUhUXg=", 34 + "url": "https://cli.upbound.io/main/v0.38.0-0.rc.0.29.g59359e0/bundle/up/linux_arm64.tar.gz" 35 + }, 36 + "x86_64-darwin": { 37 + "hash": "sha256-1LxqRHQjNlRFTGhEyOR9uW407LkqdpVjB3w57hNT/Zk=", 38 + "url": "https://cli.upbound.io/main/v0.38.0-0.rc.0.29.g59359e0/bundle/up/darwin_amd64.tar.gz" 39 + }, 40 + "x86_64-linux": { 41 + "hash": "sha256-ZLjhD7uCpBURYozX1IjUTJDzPuKFedIZQhRvMqMMsLY=", 42 + "url": "https://cli.upbound.io/main/v0.38.0-0.rc.0.29.g59359e0/bundle/up/linux_amd64.tar.gz" 43 + } 44 + } 45 + }, 46 + "platformList": [ 47 + "aarch64-darwin", 48 + "aarch64-linux", 49 + "x86_64-darwin", 50 + "x86_64-linux" 51 + ], 52 + "version": "0.38.0-0.rc.0.29.g59359e0" 53 + }
-54
pkgs/by-name/up/upbound/sources-main.nix
··· 1 - # Generated by "update.sh main" - do not update manually! 2 - { 3 - version = "0.37.0-0.rc.0.38.g797e121"; 4 - 5 - platformList = [ 6 - "aarch64-linux" 7 - "x86_64-linux" 8 - "x86_64-darwin" 9 - "aarch64-darwin" 10 - ]; 11 - 12 - archMap = { 13 - aarch64-linux = "linux_arm64"; 14 - x86_64-linux = "linux_amd64"; 15 - x86_64-darwin = "darwin_amd64"; 16 - aarch64-darwin = "darwin_arm64"; 17 - }; 18 - 19 - fetchurlAttrSet = { 20 - 21 - aarch64-linux.docker-credential-up = { 22 - hash = "sha256-nZXniTuLzmV7tK/Pd4BjUzqYYH2OmQKC4yoCHOhZ3C8="; 23 - url = "https://cli.upbound.io/main/v0.37.0-0.rc.0.38.g797e121/bundle/docker-credential-up/linux_arm64.tar.gz"; 24 - }; 25 - x86_64-linux.docker-credential-up = { 26 - hash = "sha256-LILaT+vn2CdKzNWxYOeda+Zid9V11I94+vwDGkGwxuQ="; 27 - url = "https://cli.upbound.io/main/v0.37.0-0.rc.0.38.g797e121/bundle/docker-credential-up/linux_amd64.tar.gz"; 28 - }; 29 - x86_64-darwin.docker-credential-up = { 30 - hash = "sha256-7eUWveGIbimxbwOGtA6qrU7F8p8EpOCTHXN4vj74qqA="; 31 - url = "https://cli.upbound.io/main/v0.37.0-0.rc.0.38.g797e121/bundle/docker-credential-up/darwin_amd64.tar.gz"; 32 - }; 33 - aarch64-darwin.docker-credential-up = { 34 - hash = "sha256-XTgSZjbHXyt1BXNeaHXqdi4gs8eeD/7rE657oAeQKv4="; 35 - url = "https://cli.upbound.io/main/v0.37.0-0.rc.0.38.g797e121/bundle/docker-credential-up/darwin_arm64.tar.gz"; 36 - }; 37 - aarch64-linux.up = { 38 - hash = "sha256-cNk4uaXcdH3EucwGnGXGsPbmKGGO+ig3xfJ+fAcwEbo="; 39 - url = "https://cli.upbound.io/main/v0.37.0-0.rc.0.38.g797e121/bundle/up/linux_arm64.tar.gz"; 40 - }; 41 - x86_64-linux.up = { 42 - hash = "sha256-3h+Jtl84UdWvs2cbrDsbtqlCCpvvYjzXZLmzDY/9aXE="; 43 - url = "https://cli.upbound.io/main/v0.37.0-0.rc.0.38.g797e121/bundle/up/linux_amd64.tar.gz"; 44 - }; 45 - x86_64-darwin.up = { 46 - hash = "sha256-WzngxshyHnR1H7Rhkbw/wkN1i3TWyV8CcBTwLNVggdU="; 47 - url = "https://cli.upbound.io/main/v0.37.0-0.rc.0.38.g797e121/bundle/up/darwin_amd64.tar.gz"; 48 - }; 49 - aarch64-darwin.up = { 50 - hash = "sha256-KLcxE4847DE6e0AznjlNZnS6GNhT1JJaCnYDecTZ6EQ="; 51 - url = "https://cli.upbound.io/main/v0.37.0-0.rc.0.38.g797e121/bundle/up/darwin_arm64.tar.gz"; 52 - }; 53 - }; 54 - }
···
+53
pkgs/by-name/up/upbound/sources-stable.json
···
··· 1 + { 2 + "archMap": { 3 + "aarch64-darwin": "darwin_arm64", 4 + "aarch64-linux": "linux_arm64", 5 + "x86_64-darwin": "darwin_amd64", 6 + "x86_64-linux": "linux_amd64" 7 + }, 8 + "fetchurlAttrSet": { 9 + "docker-credential-up": { 10 + "aarch64-darwin": { 11 + "hash": "sha256-WuNC7E1i/Yikwe3uq1Hxf4mpAzgqe9T6tI2DFqJFYq8=", 12 + "url": "https://cli.upbound.io/stable/v0.37.0/bundle/docker-credential-up/darwin_arm64.tar.gz" 13 + }, 14 + "aarch64-linux": { 15 + "hash": "sha256-b5ylPJxIVkI3EDY5IFTHll/4F6KDtQLm7eq8J7eGmtA=", 16 + "url": "https://cli.upbound.io/stable/v0.37.0/bundle/docker-credential-up/linux_arm64.tar.gz" 17 + }, 18 + "x86_64-darwin": { 19 + "hash": "sha256-jJV0SX96Isz7+E0MOQ6aq3KDwFZt4knTVuDU3iSIC+4=", 20 + "url": "https://cli.upbound.io/stable/v0.37.0/bundle/docker-credential-up/darwin_amd64.tar.gz" 21 + }, 22 + "x86_64-linux": { 23 + "hash": "sha256-Ek8xTUKFjYekaee+8rjjOKSQQ1jX3asyvVa/jATWR5c=", 24 + "url": "https://cli.upbound.io/stable/v0.37.0/bundle/docker-credential-up/linux_amd64.tar.gz" 25 + } 26 + }, 27 + "up": { 28 + "aarch64-darwin": { 29 + "hash": "sha256-jDhAB0b1XMAwGgTeL1uXIIg4YoBgpgI9KBdsbyBXjF4=", 30 + "url": "https://cli.upbound.io/stable/v0.37.0/bundle/up/darwin_arm64.tar.gz" 31 + }, 32 + "aarch64-linux": { 33 + "hash": "sha256-mVS1knNDtQjbxj2FXIyx/m/HVUhUSuN2E7HNmdxgtd4=", 34 + "url": "https://cli.upbound.io/stable/v0.37.0/bundle/up/linux_arm64.tar.gz" 35 + }, 36 + "x86_64-darwin": { 37 + "hash": "sha256-5nr+5tCbqoVel97ROn2OamV0s90O6QS9vrbSXIjhJoo=", 38 + "url": "https://cli.upbound.io/stable/v0.37.0/bundle/up/darwin_amd64.tar.gz" 39 + }, 40 + "x86_64-linux": { 41 + "hash": "sha256-MZgQlxi4MrzXG59Q4g5Bjb240E5pf5l1bHGASqSc+OU=", 42 + "url": "https://cli.upbound.io/stable/v0.37.0/bundle/up/linux_amd64.tar.gz" 43 + } 44 + } 45 + }, 46 + "platformList": [ 47 + "aarch64-darwin", 48 + "aarch64-linux", 49 + "x86_64-darwin", 50 + "x86_64-linux" 51 + ], 52 + "version": "0.37.0" 53 + }
-54
pkgs/by-name/up/upbound/sources-stable.nix
··· 1 - # Generated by "update.sh stable" - do not update manually! 2 - { 3 - version = "0.36.1"; 4 - 5 - platformList = [ 6 - "aarch64-linux" 7 - "x86_64-linux" 8 - "x86_64-darwin" 9 - "aarch64-darwin" 10 - ]; 11 - 12 - archMap = { 13 - aarch64-linux = "linux_arm64"; 14 - x86_64-linux = "linux_amd64"; 15 - x86_64-darwin = "darwin_amd64"; 16 - aarch64-darwin = "darwin_arm64"; 17 - }; 18 - 19 - fetchurlAttrSet = { 20 - 21 - aarch64-linux.docker-credential-up = { 22 - hash = "sha256-BnEQWK1Y4rCDEk5BgkUIeF0oK6C77AQZh6KWhS+MfqM="; 23 - url = "https://cli.upbound.io/stable/v0.36.1/bundle/docker-credential-up/linux_arm64.tar.gz"; 24 - }; 25 - x86_64-linux.docker-credential-up = { 26 - hash = "sha256-4A0Di92G/vi9NR/pH20E8aaSn/jYhduQbYH6aLL2R3E="; 27 - url = "https://cli.upbound.io/stable/v0.36.1/bundle/docker-credential-up/linux_amd64.tar.gz"; 28 - }; 29 - x86_64-darwin.docker-credential-up = { 30 - hash = "sha256-/i4VsDUk0B+htRv0UCjCLT1ByewO8UNHOMbbxqIfvvE="; 31 - url = "https://cli.upbound.io/stable/v0.36.1/bundle/docker-credential-up/darwin_amd64.tar.gz"; 32 - }; 33 - aarch64-darwin.docker-credential-up = { 34 - hash = "sha256-gaaaOfn8oOxjlYruGePFZ+e65cUgRJSlsr4iweVYdSE="; 35 - url = "https://cli.upbound.io/stable/v0.36.1/bundle/docker-credential-up/darwin_arm64.tar.gz"; 36 - }; 37 - aarch64-linux.up = { 38 - hash = "sha256-mxuDhdO0nZkozMsKiKcDPBscgrY0pSChJP5TUJz729E="; 39 - url = "https://cli.upbound.io/stable/v0.36.1/bundle/up/linux_arm64.tar.gz"; 40 - }; 41 - x86_64-linux.up = { 42 - hash = "sha256-oZ1RpPZAKzChRWKUhUcKPRXhqmf3FBXvpFCICMsWh+w="; 43 - url = "https://cli.upbound.io/stable/v0.36.1/bundle/up/linux_amd64.tar.gz"; 44 - }; 45 - x86_64-darwin.up = { 46 - hash = "sha256-a4QsXlfmmFhRYxC0yZ7yVIHmP8VUgggfOZSenMXGlKA="; 47 - url = "https://cli.upbound.io/stable/v0.36.1/bundle/up/darwin_amd64.tar.gz"; 48 - }; 49 - aarch64-darwin.up = { 50 - hash = "sha256-PPHlADbIiQ/CAF746lulvuHjwwo1V563K9Haf/7IjEI="; 51 - url = "https://cli.upbound.io/stable/v0.36.1/bundle/up/darwin_arm64.tar.gz"; 52 - }; 53 - }; 54 - }
···
+4
pkgs/by-name/up/upbound/update
···
··· 1 + #!/usr/bin/env bash 2 + 3 + SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd) 4 + exec "$SCRIPT_DIR"/update.hs "$(realpath "$0")" "$1"
+96
pkgs/by-name/up/upbound/update.hs
···
··· 1 + #!/usr/bin/env nix-shell 2 + #!nix-shell -i runhaskell --packages 'haskellPackages.ghcWithPackages (ps: [ps.aeson ps.aeson-pretty ps.directory ps.process ps.optparse-applicative])' 3 + 4 + {-# LANGUAGE OverloadedStrings #-} 5 + {-# LANGUAGE RecordWildCards #-} 6 + 7 + module Main where 8 + 9 + import Options.Applicative 10 + import System.FilePath (takeDirectory, (</>)) 11 + import System.Process (readProcess) 12 + import Data.Aeson (object, (.=)) 13 + import Data.Aeson.Encode.Pretty (encodePretty', Config(..), defConfig, Indent(..), keyOrder) 14 + import qualified Data.ByteString.Lazy.Char8 as BL 15 + import qualified Data.Map.Strict as Map 16 + import Control.Monad (forM) 17 + import qualified Data.Text as T 18 + 19 + data Options = Options 20 + { scriptPath :: FilePath 21 + , channel :: String 22 + } 23 + 24 + optionsParser :: Parser Options 25 + optionsParser = Options 26 + <$> argument str 27 + ( metavar "SCRIPT_PATH" 28 + <> help "The path to the script" ) 29 + <*> argument channelReader 30 + ( metavar "CHANNEL" 31 + <> help "The release channel (main or stable)" ) 32 + 33 + channelReader :: ReadM String 34 + channelReader = eitherReader $ \arg -> 35 + if arg `elem` ["main", "stable"] 36 + then Right arg 37 + else Left "CHANNEL must be one of: main, stable" 38 + 39 + -- Custom configuration for pretty-printing JSON 40 + prettyConfig :: Config 41 + prettyConfig = defConfig 42 + { confIndent = Spaces 2 43 + , confCompare = keyOrder ["archMap", "fetchurlAttrSet", "platformList", "version"] 44 + } 45 + 46 + main :: IO () 47 + main = do 48 + let opts = info (optionsParser <**> helper) 49 + ( fullDesc 50 + <> progDesc "Updates the sources-{main|stable}.json files based on the upstream release channel" 51 + <> header "update.hs - Haskell script with argument parsing" ) 52 + 53 + -- Parse the command-line arguments 54 + Options {..} <- execParser opts 55 + 56 + -- Process the arguments 57 + let scriptDir = takeDirectory scriptPath 58 + let outputFile = scriptDir </> ("sources-" ++ channel ++ ".json") 59 + 60 + -- Fetch current version 61 + let baseUrl = "https://cli.upbound.io/" ++ channel 62 + currentVersion <- readProcess "curl" ["-s", baseUrl ++ "/current/version"] "" 63 + let version = filter (\x -> x /= 'v' && x /= '\n') currentVersion -- Remove the leading 'v' and the new line char 64 + 65 + -- Architecture mapping 66 + let archMapping = Map.fromList 67 + [ ("aarch64-darwin", "darwin_arm64") 68 + , ("x86_64-darwin", "darwin_amd64") 69 + , ("aarch64-linux", "linux_arm64") 70 + , ("x86_64-linux", "linux_amd64") 71 + ] 72 + 73 + -- Build platformList 74 + let platformList = Map.keys archMapping 75 + 76 + -- Build fetchurlAttrSet 77 + fetchurlAttrSet <- fmap Map.fromList $ forM ["docker-credential-up", "up"] $ \cmd -> do 78 + attrs <- forM (Map.toList archMapping) $ \(key, arch) -> do 79 + let url = baseUrl ++ "/v" ++ version ++ "/bundle/" ++ cmd ++ "/" ++ arch ++ ".tar.gz" 80 + _hash <- readProcess "nix-prefetch-url" [url] "" 81 + let hash = T.unpack $ T.strip $ T.pack _hash 82 + _sha256Hash <- readProcess "nix" ["hash", "convert", hash, "--hash-algo", "sha256"] "" 83 + let sha256Hash = T.unpack $ T.strip $ T.pack _sha256Hash 84 + return (key, object ["hash" .= sha256Hash, "url" .= url]) 85 + return (cmd, object attrs) 86 + 87 + -- Write output to JSON 88 + let output = object 89 + [ "version" .= version 90 + , "platformList" .= platformList 91 + , "archMap" .= archMapping 92 + , "fetchurlAttrSet" .= fetchurlAttrSet 93 + ] 94 + BL.writeFile outputFile $ BL.snoc (encodePretty' prettyConfig output) '\n' 95 + 96 + putStrLn $ "Output written to: " ++ outputFile
-83
pkgs/by-name/up/upbound/update.sh
··· 1 - #!/usr/bin/env nix-shell 2 - #!nix-shell -i bash -p curl 3 - 4 - #set -euo pipefail 5 - 6 - SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd) 7 - 8 - # value can be main | stable 9 - # Ensure at least one argument is passed 10 - if [[ $# -lt 1 ]]; then 11 - echo "Error: No argument provided. Please specify 'main' or 'stable'." 12 - exit 1 13 - fi 14 - 15 - # Check if the first argument is 'main' or 'stable' 16 - if [[ "$1" == "main" || "$1" == "stable" ]]; then 17 - echo "Valid input: $1" 18 - else 19 - echo "Error: Invalid input. Please specify 'main' or 'stable'." 20 - exit 1 21 - fi 22 - channel=$1 23 - 24 - baseUrl="https://cli.upbound.io/${channel}" 25 - currentVersion=$(curl ${baseUrl}/current/version) 26 - 27 - version="${currentVersion:1}" 28 - 29 - declare -A archMapping 30 - archMapping["aarch64-darwin"]="darwin_arm64" 31 - archMapping["x86_64-darwin"]="darwin_amd64" 32 - archMapping["aarch64-linux"]="linux_arm64" 33 - archMapping["x86_64-linux"]="linux_amd64" 34 - 35 - archMapBlock= 36 - for key in "${!archMapping[@]}"; do 37 - line=$(printf "$key = \"${archMapping[$key]}\"; ") 38 - archMapBlock="$archMapBlock$line" 39 - done 40 - 41 - platformListBlock= 42 - for key in "${!archMapping[@]}"; do 43 - platformListBlock="$platformListBlock\"$key\" " 44 - done 45 - 46 - cmds=("docker-credential-up" "up") 47 - fetchurlAttrSetBlock= 48 - for cmd in "${cmds[@]}"; do 49 - for key in "${!archMapping[@]}"; do 50 - arch=${archMapping[$key]} 51 - url="${baseUrl}/v${version}/bundle/$cmd/${arch}.tar.gz"; 52 - hash=$(nix-prefetch-url $url) 53 - hash=$(nix hash convert "${hash}" --hash-algo sha256) 54 - fetchurlAttrSetBlock=" 55 - ${fetchurlAttrSetBlock} 56 - $key.$cmd = { 57 - hash = \"${hash}\"; 58 - url = ${url}; 59 - };" 60 - done 61 - done 62 - 63 - OUT_FILE="$SCRIPT_DIR/sources-${channel}.nix" 64 - cat >$OUT_FILE <<EOF 65 - # Generated by "update.sh ${channel}" - do not update manually! 66 - { 67 - version = "${version}"; 68 - 69 - platformList = [ 70 - ${platformListBlock} 71 - ]; 72 - 73 - archMap = { 74 - ${archMapBlock} 75 - }; 76 - 77 - fetchurlAttrSet = { 78 - ${fetchurlAttrSetBlock} 79 - }; 80 - } 81 - EOF 82 - 83 - nixfmt $OUT_FILE
···