gemini-cli-bin: init at 0.3.4

This commit is contained in:
ljxfstorm
2025-09-07 17:05:13 +08:00
parent 6addbade74
commit 31a558c5f0
2 changed files with 89 additions and 0 deletions
@@ -0,0 +1,55 @@
{
lib,
stdenvNoCC,
fetchurl,
nodejs,
gitUpdater,
}:
let
owner = "google-gemini";
repo = "gemini-cli";
asset = "gemini.js";
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "gemini-cli-bin";
version = "0.3.4";
src = fetchurl {
url = "https://github.com/${owner}/${repo}/releases/download/v${finalAttrs.version}/${asset}";
hash = "sha256-aVcizpbzV1hPsuMSGRxgMGXTyF+0yBqGk7EwPnKFDyQ=";
};
phases = [
"installPhase"
"fixupPhase"
];
strictDeps = true;
buildInputs = [ nodejs ];
installPhase = ''
runHook preInstall
install -D "$src" "$out/bin/gemini"
runHook postInstall
'';
passthru.updateScript = [
./update-asset.sh
"${owner}/${repo}"
"${asset}"
];
meta = {
description = "AI agent that brings the power of Gemini directly into your terminal";
homepage = "https://github.com/google-gemini/gemini-cli";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ ljxfstorm ];
mainProgram = "gemini";
platforms = lib.platforms.linux ++ lib.platforms.darwin;
sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
priority = 10;
};
})
+34
View File
@@ -0,0 +1,34 @@
#!/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"
RELEASE_ID="latest"
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}")"
{
read -r LATEST_VER
read -r ASSET_DIGEST
} < <(curl --fail -s ${GITHUB_TOKEN:+-u ":${GITHUB_TOKEN}"} "https://api.github.com/repos/${GITHUB_REPO}/releases/${RELEASE_ID}" | jq -r ".tag_name, (.assets[] | select(.name == \"${ASSET_NAME}\") | .digest)")
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}."