summaryrefslogtreecommitdiff
path: root/derivations/windsurf/update.sh
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-01-31 01:55:31 +0700
committerpolwex <polwex@sortug.com>2025-01-31 01:55:31 +0700
commit0e69d956f5fc20546d0a96a3891d6dd29942468b (patch)
treeea37d521b299e0d606dd6f84a3db76ff3a568ede /derivations/windsurf/update.sh
parentfb39334bcdac65a1ff1d95e7e4db2e28eabcc2d6 (diff)
config for wayland on nvidia
Diffstat (limited to 'derivations/windsurf/update.sh')
-rw-r--r--derivations/windsurf/update.sh70
1 files changed, 70 insertions, 0 deletions
diff --git a/derivations/windsurf/update.sh b/derivations/windsurf/update.sh
new file mode 100644
index 0000000..8825b65
--- /dev/null
+++ b/derivations/windsurf/update.sh
@@ -0,0 +1,70 @@
+#!/usr/bin/env bash
+#! nix-shell update-shell.nix -i bash
+
+# Update script for the windsurf package, including vscode versions and hashes.
+# Usually doesn't need to be called by hand,
+# but is called by a bot: https://github.com/samuela/nixpkgs-upkeep/actions
+# Call it by hand if the bot fails to automatically update the versions.
+
+set -euo pipefail
+
+# Directory where this script is located
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+
+# Supported platforms
+declare -A platforms=(
+ ["x86_64-linux"]="linux-x64"
+ # Uncomment when supported
+ # ["x86_64-darwin"]="macos-x64"
+ # ["aarch64-linux"]="linux-arm64"
+ # ["aarch64-darwin"]="macos-arm64"
+ # ["armv7l-linux"]="linux-armhf"
+)
+
+# Get latest version from API json
+get_latest_version() {
+ local plat="$1"
+ curl -s "https://windsurf-stable.codeium.com/api/update/$plat/stable/latest" | jq -r ".windsurfVersion"
+}
+
+# Get commit hash from API json
+get_commit_hash() {
+ local plat="$1"
+ local version="$2"
+ curl -s "https://windsurf-stable.codeium.com/api/update/$plat/stable/latest" | jq -r ".version"
+}
+
+# Get sha256hash from API json
+get_sha256_hash() {
+ local plat="$1"
+ curl -s "https://windsurf-stable.codeium.com/api/update/$plat/stable/latest" | jq -r ".sha256hash"
+}
+
+# Main update function
+update_package() {
+ echo "Updating Windsurf package..."
+
+ # Get version info for linux-x64 (primary platform)
+ local version
+ version=$(get_latest_version "linux-x64")
+ echo "Latest version: $version"
+
+ local commit_hash
+ commit_hash=$(get_commit_hash "linux-x64" "$version")
+ echo "Commit hash: $commit_hash"
+
+ local sha256_hash
+ sha256_hash=$(get_sha256_hash "linux-x64")
+ echo "sha256 hash: $sha256_hash"
+
+ # Update default.nix
+ local default_nix="$SCRIPT_DIR/default.nix"
+ sed -i "s/version = \".*\"/version = \"$version\"/" "$default_nix"
+ sed -i "s|/stable/[a-f0-9]\{40\}/|/stable/$commit_hash/|" "$default_nix"
+ sed -i "s/x86_64-linux = \".*\"/x86_64-linux = \"$sha256_hash\"/" "$default_nix"
+
+ echo "Update complete!"
+}
+
+# Run the update
+update_package