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

This commit is contained in:
Aleksana
2025-09-28 12:35:34 +00:00
committed by GitHub
2 changed files with 22 additions and 54 deletions
+22 -13
View File
@@ -3,25 +3,22 @@
stdenvNoCC,
fetchurl,
nodejs,
gitUpdater,
writableTmpDirAsHomeHook,
nix-update-script,
}:
let
owner = "google-gemini";
repo = "gemini-cli";
asset = "gemini.js";
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "gemini-cli-bin";
version = "0.6.0";
version = "0.6.1";
src = fetchurl {
url = "https://github.com/${owner}/${repo}/releases/download/v${finalAttrs.version}/${asset}";
hash = "sha256-jmZvL4Rst3238H2BdZ/bQuddFkFcFLRABJ1wTHm8qPM=";
url = "https://github.com/google-gemini/gemini-cli/releases/download/v${finalAttrs.version}/gemini.js";
hash = "sha256-gTd+uw5geR7W87BOiE6YmDDJ4AiFlYxbuLE2GWgg0kw=";
};
phases = [
"installPhase"
"fixupPhase"
"installCheckPhase"
];
strictDeps = true;
@@ -36,11 +33,23 @@ stdenvNoCC.mkDerivation (finalAttrs: {
runHook postInstall
'';
passthru.updateScript = [
./update-asset.sh
"${owner}/${repo}"
"${asset}"
doInstallCheck = true;
nativeInstallCheckInputs = [
writableTmpDirAsHomeHook
];
# versionCheckHook cannot be used because the reported version might be incorrect (e.g., 0.6.1 returns 0.6.0).
installCheckPhase = ''
runHook preInstallCheck
"$out/bin/gemini" -v
runHook postInstallCheck
'';
passthru.updateScript = nix-update-script {
# Ignore `preview` and `nightly` tags
extraArgs = [ "--version-regex=^v([0-9.]+)$" ];
};
meta = {
description = "AI agent that brings the power of Gemini directly into your terminal";
@@ -1,41 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p gnugrep curl jq gnused
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
NIX_FILE="package.nix"
GITHUB_REPO="$1"
ASSET_NAME="$2"
REV_PREFIX="${3:-v}"
CURRENT_VER="$(grep -oP 'version = "\K[^"]+' "${NIX_FILE}")"
CURRENT_HASH="$(grep -oP 'hash = "\K[^"]+' "${NIX_FILE}")"
JQ_FILTER='[.[] | select((.tag_name | test("preview|nightly")) | not)] |
first | .tag_name, (.assets[] | select(.name == $asset_name) | .digest)'
{
read -r LATEST_VER
read -r ASSET_DIGEST
} < <(
curl --fail -s ${GITHUB_TOKEN:+-u ":${GITHUB_TOKEN}"} \
"https://api.github.com/repos/${GITHUB_REPO}/releases" |
jq -r --arg asset_name "${ASSET_NAME}" "${JQ_FILTER}"
)
LATEST_VER="${LATEST_VER#"${REV_PREFIX}"}"
if [[ "${LATEST_VER}" == "${CURRENT_VER}" ]]; then
echo "Up to date."
exit 0
fi
LATEST_HASH="$(nix-hash --to-sri "${ASSET_DIGEST}")"
sed -i "s#hash = \"${CURRENT_HASH}\";#hash = \"${LATEST_HASH}\";#g" "${NIX_FILE}"
sed -i "s#version = \"${CURRENT_VER}\";#version = \"${LATEST_VER}\";#g" "${NIX_FILE}"
echo "Successfully updated from ${CURRENT_VER} to version ${LATEST_VER}."