gemini-cli-bin: 0.6.0 -> 0.6.1 (#446606)

authored by Aleksana and committed by GitHub 2eb62f40 b2a02c12

+22 -54
+22 -13
pkgs/by-name/ge/gemini-cli-bin/package.nix
··· 3 stdenvNoCC, 4 fetchurl, 5 nodejs, 6 - gitUpdater, 7 }: 8 - let 9 - owner = "google-gemini"; 10 - repo = "gemini-cli"; 11 - asset = "gemini.js"; 12 - in 13 stdenvNoCC.mkDerivation (finalAttrs: { 14 pname = "gemini-cli-bin"; 15 - version = "0.6.0"; 16 17 src = fetchurl { 18 - url = "https://github.com/${owner}/${repo}/releases/download/v${finalAttrs.version}/${asset}"; 19 - hash = "sha256-jmZvL4Rst3238H2BdZ/bQuddFkFcFLRABJ1wTHm8qPM="; 20 }; 21 22 phases = [ 23 "installPhase" 24 "fixupPhase" 25 ]; 26 27 strictDeps = true; ··· 36 runHook postInstall 37 ''; 38 39 - passthru.updateScript = [ 40 - ./update-asset.sh 41 - "${owner}/${repo}" 42 - "${asset}" 43 ]; 44 45 meta = { 46 description = "AI agent that brings the power of Gemini directly into your terminal";
··· 3 stdenvNoCC, 4 fetchurl, 5 nodejs, 6 + writableTmpDirAsHomeHook, 7 + nix-update-script, 8 }: 9 stdenvNoCC.mkDerivation (finalAttrs: { 10 pname = "gemini-cli-bin"; 11 + version = "0.6.1"; 12 13 src = fetchurl { 14 + url = "https://github.com/google-gemini/gemini-cli/releases/download/v${finalAttrs.version}/gemini.js"; 15 + hash = "sha256-gTd+uw5geR7W87BOiE6YmDDJ4AiFlYxbuLE2GWgg0kw="; 16 }; 17 18 phases = [ 19 "installPhase" 20 "fixupPhase" 21 + "installCheckPhase" 22 ]; 23 24 strictDeps = true; ··· 33 runHook postInstall 34 ''; 35 36 + doInstallCheck = true; 37 + nativeInstallCheckInputs = [ 38 + writableTmpDirAsHomeHook 39 ]; 40 + # versionCheckHook cannot be used because the reported version might be incorrect (e.g., 0.6.1 returns 0.6.0). 41 + installCheckPhase = '' 42 + runHook preInstallCheck 43 + 44 + "$out/bin/gemini" -v 45 + 46 + runHook postInstallCheck 47 + ''; 48 + 49 + passthru.updateScript = nix-update-script { 50 + # Ignore `preview` and `nightly` tags 51 + extraArgs = [ "--version-regex=^v([0-9.]+)$" ]; 52 + }; 53 54 meta = { 55 description = "AI agent that brings the power of Gemini directly into your terminal";
-41
pkgs/by-name/ge/gemini-cli-bin/update-asset.sh
··· 1 - #!/usr/bin/env nix-shell 2 - #!nix-shell -i bash -p gnugrep curl jq gnused 3 - 4 - set -euo pipefail 5 - 6 - cd "$(dirname "${BASH_SOURCE[0]}")" 7 - 8 - NIX_FILE="package.nix" 9 - 10 - GITHUB_REPO="$1" 11 - ASSET_NAME="$2" 12 - REV_PREFIX="${3:-v}" 13 - 14 - CURRENT_VER="$(grep -oP 'version = "\K[^"]+' "${NIX_FILE}")" 15 - CURRENT_HASH="$(grep -oP 'hash = "\K[^"]+' "${NIX_FILE}")" 16 - 17 - JQ_FILTER='[.[] | select((.tag_name | test("preview|nightly")) | not)] | 18 - first | .tag_name, (.assets[] | select(.name == $asset_name) | .digest)' 19 - 20 - { 21 - read -r LATEST_VER 22 - read -r ASSET_DIGEST 23 - } < <( 24 - curl --fail -s ${GITHUB_TOKEN:+-u ":${GITHUB_TOKEN}"} \ 25 - "https://api.github.com/repos/${GITHUB_REPO}/releases" | 26 - jq -r --arg asset_name "${ASSET_NAME}" "${JQ_FILTER}" 27 - ) 28 - 29 - LATEST_VER="${LATEST_VER#"${REV_PREFIX}"}" 30 - 31 - if [[ "${LATEST_VER}" == "${CURRENT_VER}" ]]; then 32 - echo "Up to date." 33 - exit 0 34 - fi 35 - 36 - LATEST_HASH="$(nix-hash --to-sri "${ASSET_DIGEST}")" 37 - 38 - sed -i "s#hash = \"${CURRENT_HASH}\";#hash = \"${LATEST_HASH}\";#g" "${NIX_FILE}" 39 - sed -i "s#version = \"${CURRENT_VER}\";#version = \"${LATEST_VER}\";#g" "${NIX_FILE}" 40 - 41 - echo "Successfully updated from ${CURRENT_VER} to version ${LATEST_VER}."
···