From 2bb9b781ccd19acba6270f26d85a90346aecc48f Mon Sep 17 00:00:00 2001 From: Kamil Monicz Date: Tue, 18 Nov 2025 18:17:18 +0000 Subject: [PATCH 1/3] antigravity: init at 1.11.2-6251250307170304 --- pkgs/by-name/an/antigravity/package.nix | 62 +++++++++++++++++ pkgs/by-name/an/antigravity/sources.json | 18 +++++ pkgs/by-name/an/antigravity/update.sh | 84 ++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 6 ++ 4 files changed, 170 insertions(+) create mode 100644 pkgs/by-name/an/antigravity/package.nix create mode 100644 pkgs/by-name/an/antigravity/sources.json create mode 100755 pkgs/by-name/an/antigravity/update.sh diff --git a/pkgs/by-name/an/antigravity/package.nix b/pkgs/by-name/an/antigravity/package.nix new file mode 100644 index 000000000000..6326a37f26ab --- /dev/null +++ b/pkgs/by-name/an/antigravity/package.nix @@ -0,0 +1,62 @@ +{ + lib, + stdenv, + callPackage, + vscode-generic, + fetchurl, + commandLineArgs ? "", + useVSCodeRipgrep ? stdenv.hostPlatform.isDarwin, +}: + +let + inherit (stdenv) hostPlatform; + + sources = + (lib.importJSON ./sources.json)."${hostPlatform.system}" + or (throw "antigravity: unsupported system ${hostPlatform.system}"); + + version = "1.11.2-6251250307170304"; + vscodeVersion = "1.104.0"; +in +callPackage vscode-generic { + inherit + commandLineArgs + useVSCodeRipgrep + version + vscodeVersion + ; + + pname = "antigravity"; + + executableName = "antigravity"; + longName = "Google Antigravity"; + shortName = "Antigravity"; + libraryName = "antigravity"; + iconName = "antigravity"; + + src = fetchurl { + inherit (sources) url hash; + }; + + sourceRoot = if hostPlatform.isDarwin then "Antigravity.app" else "Antigravity"; + + tests = { }; + updateScript = ./update.sh; + + meta = { + mainProgram = "antigravity"; + description = "Agentic development platform, evolving the IDE into the agent-first era"; + homepage = "https://antigravity.google"; + downloadPage = "https://antigravity.google/download"; + changelog = "https://antigravity.google/changelog"; + license = lib.licenses.unfree; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + platforms = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + maintainers = with lib.maintainers; [ Zaczero ]; + }; +} diff --git a/pkgs/by-name/an/antigravity/sources.json b/pkgs/by-name/an/antigravity/sources.json new file mode 100644 index 000000000000..8e6d19778941 --- /dev/null +++ b/pkgs/by-name/an/antigravity/sources.json @@ -0,0 +1,18 @@ +{ + "x86_64-linux": { + "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.2-6251250307170304/linux-x64/Antigravity.tar.gz", + "hash": "sha256-0bERWudsJ1w3bqZg4eTS3CDrPnLWogawllBblEpfZLc=" + }, + "aarch64-linux": { + "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.2-6251250307170304/linux-arm/Antigravity.tar.gz", + "hash": "sha256-UBVxx05mKcqdAy0Usc4heGCJ/UtK86+RSsQzgkngpx4=" + }, + "x86_64-darwin": { + "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.2-6251250307170304/darwin-x64/Antigravity.zip", + "hash": "sha256-jrAUYtxPJqukW+SZK9oLFF0ewhDGOmJyV4ryflnyO+8=" + }, + "aarch64-darwin": { + "url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.11.2-6251250307170304/darwin-arm/Antigravity.zip", + "hash": "sha256-ZYlO1lZGQgTvbXgLTbEmh4A3HuCFgKTgWJfkMNyh4hw=" + } +} diff --git a/pkgs/by-name/an/antigravity/update.sh b/pkgs/by-name/an/antigravity/update.sh new file mode 100755 index 000000000000..d717bbee95aa --- /dev/null +++ b/pkgs/by-name/an/antigravity/update.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnugrep gnused 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" +DOWNLOAD_PAGE_URL="https://antigravity.google/download/linux" + +# Fetch download page +page=$(curl -fsSL --compressed "$DOWNLOAD_PAGE_URL") +script_name=$(printf '%s\n' "$page" | grep -o 'main-[a-zA-Z0-9]*\.js' | head -n 1) +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 -n 1 +) + +# Extract Version +version=$( + printf '%s\n' "$linux_x86_64_url" \ + | sed -n 's#.*/stable/\([^/]*\)/linux-x64/Antigravity.tar.gz#\1#p' +) + +echo "Version: $version" + +# 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 -n 1) +archive_path=$(echo "$prefetch_output" | tail -n 1) +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") + +echo "Extracting VS Code version..." +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." diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b0e886c08d79..fc9916d3020f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12570,6 +12570,12 @@ with pkgs; vscodium-fhs = vscodium.fhs; vscodium-fhsWithPackages = vscodium.fhsWithPackages; + antigravity = callPackage ../by-name/an/antigravity/package.nix { + vscode-generic = ../applications/editors/vscode/generic.nix; + }; + antigravity-fhs = antigravity.fhs; + antigravity-fhsWithPackages = antigravity.fhsWithPackages; + code-cursor = callPackage ../by-name/co/code-cursor/package.nix { vscode-generic = ../applications/editors/vscode/generic.nix; }; From 0313ae4db4fe8499ea42e14973b98050bd17323b Mon Sep 17 00:00:00 2001 From: Kamil Monicz Date: Tue, 18 Nov 2025 20:29:26 +0100 Subject: [PATCH 2/3] antigravity: skip updates when version unchanged --- pkgs/by-name/an/antigravity/update.sh | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/an/antigravity/update.sh b/pkgs/by-name/an/antigravity/update.sh index d717bbee95aa..e352437fa1de 100755 --- a/pkgs/by-name/an/antigravity/update.sh +++ b/pkgs/by-name/an/antigravity/update.sh @@ -1,5 +1,5 @@ #!/usr/bin/env nix-shell -#!nix-shell -i bash -p curl gnugrep gnused jq +#!nix-shell -i bash -p curl gnugrep gnused gnutar jq # shellcheck shell=bash set -euo pipefail @@ -7,10 +7,9 @@ set -euo pipefail SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" PACKAGE_NIX="${SCRIPT_DIR}/package.nix" SOURCES_JSON="${SCRIPT_DIR}/sources.json" -DOWNLOAD_PAGE_URL="https://antigravity.google/download/linux" -# Fetch download page -page=$(curl -fsSL --compressed "$DOWNLOAD_PAGE_URL") +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 -n 1) js_content=$(curl -fsSL --compressed "https://antigravity.google/$script_name") @@ -21,14 +20,19 @@ linux_x86_64_url=$( | head -n 1 ) -# Extract Version +# Extract version and check for update version=$( printf '%s\n' "$linux_x86_64_url" \ | sed -n 's#.*/stable/\([^/]*\)/linux-x64/Antigravity.tar.gz#\1#p' ) - echo "Version: $version" +current_version=$(sed -n 's/.*version = "\(.*\)".*/\1/p' "$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}" @@ -53,18 +57,18 @@ 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") -echo "Extracting VS Code version..." +# 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..." +echo "Updating package.nix" sed -i "s/version = \".*\"/version = \"$version\"/" "$PACKAGE_NIX" sed -i "s/vscodeVersion = \".*\"/vscodeVersion = \"$vscodeVersion\"/" "$PACKAGE_NIX" -echo "Updating sources.json..." +echo "Updating sources.json" jq -n \ --arg linux_x86_64_url "$linux_x86_64_url" \ --arg linux_x86_64_hash "$linux_x86_64_hash" \ @@ -81,4 +85,4 @@ jq -n \ "aarch64-darwin": { url: $darwin_aarch64_url, hash: $darwin_aarch64_hash } }' > "$SOURCES_JSON" -echo "Update complete." +echo "Update complete" From e9f0688b449dc77479548ae34e9ba8f6aa14e943 Mon Sep 17 00:00:00 2001 From: Kamil Monicz Date: Tue, 18 Nov 2025 20:37:34 +0100 Subject: [PATCH 3/3] antigravity: simplify update.sh --- pkgs/by-name/an/antigravity/update.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/an/antigravity/update.sh b/pkgs/by-name/an/antigravity/update.sh index e352437fa1de..c7cb5b886f38 100755 --- a/pkgs/by-name/an/antigravity/update.sh +++ b/pkgs/by-name/an/antigravity/update.sh @@ -10,14 +10,14 @@ 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 -n 1) +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 -n 1 + | head -n1 ) # Extract version and check for update @@ -27,7 +27,7 @@ version=$( ) echo "Version: $version" -current_version=$(sed -n 's/.*version = "\(.*\)".*/\1/p' "$PACKAGE_NIX" | head -n1) +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 @@ -40,8 +40,8 @@ darwin_aarch64_url="${linux_x86_64_url/linux-x64\/Antigravity.tar.gz/darwin-arm\ 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 -n 1) -archive_path=$(echo "$prefetch_output" | tail -n 1) +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")