From 73ddae7224d5e6aced311c5658d6c30b46241c8d Mon Sep 17 00:00:00 2001 From: ZHAO Jin-Xiang Date: Thu, 20 Nov 2025 17:19:09 +0800 Subject: [PATCH 1/2] antigravity: simplify update script and add typedefs for update scripts --- pkgs/by-name/an/antigravity/information.json | 22 +++++ pkgs/by-name/an/antigravity/package.nix | 24 ++---- pkgs/by-name/an/antigravity/sources.json | 18 ---- pkgs/by-name/an/antigravity/update.js | 44 ++++++++++ pkgs/by-name/an/antigravity/update.sh | 88 -------------------- 5 files changed, 73 insertions(+), 123 deletions(-) create mode 100644 pkgs/by-name/an/antigravity/information.json delete mode 100644 pkgs/by-name/an/antigravity/sources.json create mode 100755 pkgs/by-name/an/antigravity/update.js delete mode 100755 pkgs/by-name/an/antigravity/update.sh diff --git a/pkgs/by-name/an/antigravity/information.json b/pkgs/by-name/an/antigravity/information.json new file mode 100644 index 000000000000..9360cbc16d40 --- /dev/null +++ b/pkgs/by-name/an/antigravity/information.json @@ -0,0 +1,22 @@ +{ + "version": "1.11.3", + "vscodeVersion": "1.104.0", + "sources": { + "x86_64-linux": { + "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.3-6583016683339776/linux-x64/Antigravity.tar.gz", + "sha256": "025da512f9799a7154e2cc75bc0908201382c1acf2e8378f9da235cb84a5615b" + }, + "aarch64-linux": { + "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.3-6583016683339776/linux-arm/Antigravity.tar.gz", + "sha256": "327f59ab6168ddc2ec27f0a4c7b2033af4a44e129111fe572f3def48ebbad533" + }, + "x86_64-darwin": { + "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.3-6583016683339776/darwin-x64/Antigravity.zip", + "sha256": "78d97467ffba1ba07cbecc76e4a95a2291883e468e3a2b131fe936be20caa2a9" + }, + "aarch64-darwin": { + "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.3-6583016683339776/darwin-arm/Antigravity.zip", + "sha256": "72314592fa73fd8058d9cefc44dd2461b84e00cd6ba0f8ee8c9edee75d641278" + } + } +} diff --git a/pkgs/by-name/an/antigravity/package.nix b/pkgs/by-name/an/antigravity/package.nix index b6600938b254..2361e94577db 100644 --- a/pkgs/by-name/an/antigravity/package.nix +++ b/pkgs/by-name/an/antigravity/package.nix @@ -14,22 +14,14 @@ let inherit (stdenv) hostPlatform; - - sources = - (lib.importJSON ./sources.json)."${hostPlatform.system}" + information = (lib.importJSON ./information.json); + source = + information.sources."${hostPlatform.system}" or (throw "antigravity: unsupported system ${hostPlatform.system}"); - - version = "1.11.3"; - vscodeVersion = "1.104.0"; in (callPackage vscode-generic { - inherit - commandLineArgs - useVSCodeRipgrep - version - vscodeVersion - ; - + inherit commandLineArgs useVSCodeRipgrep; + inherit (information) version vscodeVersion; pname = "antigravity"; executableName = "antigravity"; @@ -38,9 +30,7 @@ in libraryName = "antigravity"; iconName = "antigravity"; - src = fetchurl { - inherit (sources) url hash; - }; + src = fetchurl { inherit (source) url sha256; }; sourceRoot = if hostPlatform.isDarwin then "Antigravity.app" else "Antigravity"; @@ -68,7 +58,7 @@ in ); tests = { }; - updateScript = ./update.sh; + updateScript = ./update.js; dontFixup = hostPlatform.isDarwin; diff --git a/pkgs/by-name/an/antigravity/sources.json b/pkgs/by-name/an/antigravity/sources.json deleted file mode 100644 index 67d59f60d2d7..000000000000 --- a/pkgs/by-name/an/antigravity/sources.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "x86_64-linux": { - "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.3-6583016683339776/linux-x64/Antigravity.tar.gz", - "hash": "sha256-Al2lEvl5mnFU4sx1vAkIIBOCwazy6DePnaI1y4SlYVs=" - }, - "aarch64-linux": { - "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.3-6583016683339776/linux-arm/Antigravity.tar.gz", - "hash": "sha256-Mn9Zq2Fo3cLsJ/Ckx7IDOvSkThKREf5XLz3vSOu61TM=" - }, - "x86_64-darwin": { - "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.3-6583016683339776/darwin-x64/Antigravity.zip", - "hash": "sha256-eNl0Z/+6G6B8vsx25KlaIpGIPkaOOisTH+k2viDKoqk=" - }, - "aarch64-darwin": { - "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.3-6583016683339776/darwin-arm/Antigravity.zip", - "hash": "sha256-cjFFkvpz/YBY2c78RN0kYbhOAM1roPjujJ7e511kEng=" - } -} diff --git a/pkgs/by-name/an/antigravity/update.js b/pkgs/by-name/an/antigravity/update.js new file mode 100755 index 000000000000..45bf250a2fd5 --- /dev/null +++ b/pkgs/by-name/an/antigravity/update.js @@ -0,0 +1,44 @@ +#!/usr/bin/env nix +/* +#!nix shell --ignore-environment .#cacert .#nodejs --command node +*/ +// @ts-check +import assert from "node:assert/strict"; +import * as fs from "node:fs"; +import * as path from "node:path"; +/** + * @typedef {object} UpdateInfo + * @property {number} timestamp Unix timestamp in seconds, example: 1763468493 + * @property {string} productVersion VSCode OSS version, example: "1.104.0" + * @property {string} sha256hash SHA256 hash of the download file, example: "8eb01462dc4f26aba45be4992bda0b145d1ec210c63a6272578af27e59f23bef" + * @property {string} url Download URL, example: "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.2-6251250307170304/linux-arm/Antigravity.tar.gz", "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.2-6251250307170304/darwin-x64/Antigravity.zip" + */ +/** @typedef {"x86_64-linux" | "aarch64-linux" | "x86_64-darwin" | "aarch64-darwin"} Platform */ +/** @typedef {{ version: string; vscodeVersion: string; sources: Record }} Information */ + +let version = ""; +let vscodeVersion = ""; +async function getLatestInformation(/** @type {"linux-x64" | "linux-arm64" | "darwin-arm64" | "darwin"} */ targetSystem) { + /** @type {UpdateInfo} */ + const latestInfo = await (await fetch(`https://antigravity-auto-updater-974169037036.us-central1.run.app/api/update/${targetSystem}/stable/latest`)).json(); + const newVersion = /\/antigravity\/stable\/([\d.]+)-[\d]+/.exec(latestInfo.url)?.[1] ?? ""; // Current API lack version field now, we need to parse it from the URL temporarily. + assert(version === '' || version === newVersion, `Version mismatch: ${version}(linux-x64) != ${newVersion}(${targetSystem})`); + version = newVersion; + assert(vscodeVersion === '' || vscodeVersion === latestInfo.productVersion, `VSCode version mismatch: ${vscodeVersion}(linux-x64) != ${latestInfo.productVersion}(${targetSystem})`); + vscodeVersion = latestInfo.productVersion; + return { + url: latestInfo.url, + sha256: latestInfo.sha256hash, + }; +} +/** @type {Information['sources']} */ +const sources = { + "x86_64-linux": await getLatestInformation("linux-x64"), + "aarch64-linux": await getLatestInformation("linux-arm64"), + "x86_64-darwin": await getLatestInformation("darwin"), + "aarch64-darwin": await getLatestInformation("darwin-arm64"), +}; +/** @type {Information} */ +const information = { version, vscodeVersion, sources }; +fs.writeFileSync(path.join(import.meta.dirname, "./information.json"), JSON.stringify(information, null, 2) + "\n", "utf-8"); +console.log(`[update] Updating Antigravity complete, version: ${version}, vscodeVersion: ${vscodeVersion}`); diff --git a/pkgs/by-name/an/antigravity/update.sh b/pkgs/by-name/an/antigravity/update.sh deleted file mode 100755 index 6dd76d334a1a..000000000000 --- a/pkgs/by-name/an/antigravity/update.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i bash -p curl gnugrep gnused gnutar jq -# shellcheck shell=bash - -set -euo pipefail - -SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" -PACKAGE_NIX="${SCRIPT_DIR}/package.nix" -SOURCES_JSON="${SCRIPT_DIR}/sources.json" - -echo "Fetching latest release information..." -page=$(curl -fsSL --compressed "https://antigravity.google/download/linux") -script_name=$(printf '%s\n' "$page" | grep -o 'main-[a-zA-Z0-9]*\.js' | head -n1) -js_content=$(curl -fsSL --compressed "https://antigravity.google/$script_name") - -# Extract Linux x86_64 URL -linux_x86_64_url=$( - printf '%s\n' "$js_content" \ - | grep -o 'https://[^"]*/linux-x64/Antigravity.tar.gz' \ - | head -n1 -) - -# Extract version and check for update -version=$( - printf '%s\n' "$linux_x86_64_url" \ - | sed -n 's#.*/stable/\([^-]*\)-[0-9]*/linux-x64/Antigravity.tar.gz#\1#p' -) -echo "Version: $version" - -current_version=$(grep -oP '^\s*version = "\K[^"]+' "$PACKAGE_NIX" | head -n1) -if [[ "$version" == "$current_version" ]]; then - echo "Antigravity is already up-to-date" - exit 0 -fi - -# Derive URLs -linux_aarch64_url="${linux_x86_64_url/linux-x64\/Antigravity.tar.gz/linux-arm\/Antigravity.tar.gz}" -darwin_x86_64_url="${linux_x86_64_url/linux-x64\/Antigravity.tar.gz/darwin-x64\/Antigravity.zip}" -darwin_aarch64_url="${linux_x86_64_url/linux-x64\/Antigravity.tar.gz/darwin-arm\/Antigravity.zip}" - -echo "Prefetching x86_64-linux from $linux_x86_64_url..." -prefetch_output=$(nix-prefetch-url --print-path "$linux_x86_64_url") -linux_x86_64_hash_base32=$(echo "$prefetch_output" | head -n1) -archive_path=$(echo "$prefetch_output" | tail -n1) -echo "path is '$archive_path'" >&2 -linux_x86_64_hash=$(nix-hash --type sha256 --to-sri "$linux_x86_64_hash_base32") - -echo "Prefetching aarch64-linux from $linux_aarch64_url..." -linux_aarch64_hash_base32=$(nix-prefetch-url "$linux_aarch64_url") -linux_aarch64_hash=$(nix-hash --type sha256 --to-sri "$linux_aarch64_hash_base32") - -echo "Prefetching x86_64-darwin from $darwin_x86_64_url..." -darwin_x86_64_hash_base32=$(nix-prefetch-url "$darwin_x86_64_url") -darwin_x86_64_hash=$(nix-hash --type sha256 --to-sri "$darwin_x86_64_hash_base32") - -echo "Prefetching aarch64-darwin from $darwin_aarch64_url..." -darwin_aarch64_hash_base32=$(nix-prefetch-url "$darwin_aarch64_url") -darwin_aarch64_hash=$(nix-hash --type sha256 --to-sri "$darwin_aarch64_hash_base32") - -# Extract VS Code version from metadata -vscodeVersion=$( - tar -Oxzf "$archive_path" "Antigravity/resources/app/product.json" \ - | jq -r '.version' -) -echo "VS Code version: $vscodeVersion" - -echo "Updating package.nix" -sed -i "s/version = \".*\"/version = \"$version\"/" "$PACKAGE_NIX" -sed -i "s/vscodeVersion = \".*\"/vscodeVersion = \"$vscodeVersion\"/" "$PACKAGE_NIX" - -echo "Updating sources.json" -jq -n \ - --arg linux_x86_64_url "$linux_x86_64_url" \ - --arg linux_x86_64_hash "$linux_x86_64_hash" \ - --arg linux_aarch64_url "$linux_aarch64_url" \ - --arg linux_aarch64_hash "$linux_aarch64_hash" \ - --arg darwin_x86_64_url "$darwin_x86_64_url" \ - --arg darwin_x86_64_hash "$darwin_x86_64_hash" \ - --arg darwin_aarch64_url "$darwin_aarch64_url" \ - --arg darwin_aarch64_hash "$darwin_aarch64_hash" \ - '{ - "x86_64-linux": { url: $linux_x86_64_url, hash: $linux_x86_64_hash }, - "aarch64-linux": { url: $linux_aarch64_url, hash: $linux_aarch64_hash }, - "x86_64-darwin": { url: $darwin_x86_64_url, hash: $darwin_x86_64_hash }, - "aarch64-darwin": { url: $darwin_aarch64_url, hash: $darwin_aarch64_hash } - }' > "$SOURCES_JSON" - -echo "Update complete" From bb3085b09b6d7eac9f00594a33e6d6e48e6987ac Mon Sep 17 00:00:00 2001 From: ZHAO Jin-Xiang Date: Sun, 23 Nov 2025 08:09:52 +0000 Subject: [PATCH 2/2] antigravity: 1.11.3 -> 1.11.5 --- pkgs/by-name/an/antigravity/information.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/an/antigravity/information.json b/pkgs/by-name/an/antigravity/information.json index 9360cbc16d40..aa61d972b31b 100644 --- a/pkgs/by-name/an/antigravity/information.json +++ b/pkgs/by-name/an/antigravity/information.json @@ -1,22 +1,22 @@ { - "version": "1.11.3", + "version": "1.11.5", "vscodeVersion": "1.104.0", "sources": { "x86_64-linux": { - "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.3-6583016683339776/linux-x64/Antigravity.tar.gz", - "sha256": "025da512f9799a7154e2cc75bc0908201382c1acf2e8378f9da235cb84a5615b" + "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.5-5234145629700096/linux-x64/Antigravity.tar.gz", + "sha256": "4e03151a55743cf30fac595abb343c9eb5a3b6a80d2540136d75b4ead8072112" }, "aarch64-linux": { - "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.3-6583016683339776/linux-arm/Antigravity.tar.gz", - "sha256": "327f59ab6168ddc2ec27f0a4c7b2033af4a44e129111fe572f3def48ebbad533" + "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.5-5234145629700096/linux-arm/Antigravity.tar.gz", + "sha256": "e154dc745c51c7aadc33becee985188c92246a36a16ee0ba545c422172f8d0c2" }, "x86_64-darwin": { - "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.3-6583016683339776/darwin-x64/Antigravity.zip", - "sha256": "78d97467ffba1ba07cbecc76e4a95a2291883e468e3a2b131fe936be20caa2a9" + "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.5-5234145629700096/darwin-x64/Antigravity.zip", + "sha256": "393336a2177fc3795adb9450f311ce5d453b5df0e0cfa23e35e419f46e3ebc2c" }, "aarch64-darwin": { - "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.3-6583016683339776/darwin-arm/Antigravity.zip", - "sha256": "72314592fa73fd8058d9cefc44dd2461b84e00cd6ba0f8ee8c9edee75d641278" + "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.5-5234145629700096/darwin-arm/Antigravity.zip", + "sha256": "800890265dca8b74d7d28af99fae7fc5762f4d529e8eeb451a76c25e09dff488" } } }