summaryrefslogtreecommitdiffstats
path: root/pkgs/by-name/py/pyright/update.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/py/pyright/update.sh')
-rwxr-xr-xpkgs/by-name/py/pyright/update.sh44
1 files changed, 44 insertions, 0 deletions
diff --git a/pkgs/by-name/py/pyright/update.sh b/pkgs/by-name/py/pyright/update.sh
new file mode 100755
index 000000000000..b0a2b2a11184
--- /dev/null
+++ b/pkgs/by-name/py/pyright/update.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused common-updater-scripts jq prefetch-npm-deps
+set -euo pipefail
+
+version=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s https://api.github.com/repos/microsoft/pyright/releases/latest | jq -r '.tag_name | sub("^v"; "")')
+
+update-source-version pyright "$version"
+
+root="$(dirname "$(readlink -f "$0")")"
+FILE_PATH="$root/package.nix"
+REPO_URL_PREFIX="https://github.com/microsoft/pyright/raw"
+TEMP_DIR=$(mktemp -d)
+
+trap 'rm -rf "$TEMP_DIR"' EXIT
+
+# Function to download `package-lock.json` for a given source path and update hash
+update_hash() {
+ local source_root_path="$1"
+ local existing_hash="$2"
+
+ # Formulate download URL
+ local download_url="${REPO_URL_PREFIX}/${version}${source_root_path}/package-lock.json"
+
+ # Download package-lock.json to temporary directory
+ curl -fsSL -o "${TEMP_DIR}/package-lock.json" "$download_url"
+
+ # Calculate the new hash
+ local new_hash
+ new_hash=$(prefetch-npm-deps "${TEMP_DIR}/package-lock.json")
+
+ # Update npmDepsHash in the original file
+ sed -i "s|$existing_hash|${new_hash}|" "$FILE_PATH"
+}
+
+while IFS= read -r source_root_line; do
+ [[ "$source_root_line" =~ sourceRoot ]] || continue
+ source_root_path=$(echo "$source_root_line" | sed -e 's/^.*"${src.name}\(.*\)";.*$/\1/')
+
+ # Extract the current npmDepsHash for this sourceRoot
+ existing_hash=$(grep -A1 "$source_root_line" "$FILE_PATH" | grep 'npmDepsHash' | sed -e 's/^.*npmDepsHash = "\(.*\)";$/\1/')
+
+ # Call the function to download and update the hash
+ update_hash "$source_root_path" "$existing_hash"
+done < "$FILE_PATH"