generated from exteraGramPlugins/pluginBase
Initial commit
This commit is contained in:
commit
e0586a3423
31 files changed
+2335
No files matched your search
Executable
+62
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")/.."
|
||||
source scripts/lib.sh
|
||||
|
||||
need_cmd "$PY" curl unzip sha256sum
|
||||
|
||||
BETA=0
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--beta) BETA=1 ;;
|
||||
*) die "unknown argument: $arg" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
API_URL="https://api.github.com/repos/exteraSquad/plugins-pysdk-builds/releases?per_page=20"
|
||||
|
||||
RELEASE_JSON="$(mktemp)"
|
||||
trap 'rm -rf "$RELEASE_JSON" "$WORKDIR"' EXIT
|
||||
|
||||
curl -fsSL "$API_URL" -o "$RELEASE_JSON" || die "failed to query GitHub releases API"
|
||||
|
||||
read -r TAG ASSET_URL SHA_URL < <("$PY" - "$RELEASE_JSON" "$BETA" <<'PYEOF'
|
||||
import json, sys
|
||||
|
||||
path, allow_beta = sys.argv[1], sys.argv[2] == "1"
|
||||
with open(path, encoding="utf-8") as f:
|
||||
releases = json.load(f)
|
||||
|
||||
for rel in releases:
|
||||
if rel.get("prerelease") and not allow_beta:
|
||||
continue
|
||||
assets = {a["name"]: a["browser_download_url"] for a in rel.get("assets", [])}
|
||||
if "stubs.zip" in assets:
|
||||
sha_url = assets.get("stubs.zip.sha256", "")
|
||||
print(rel["tag_name"], assets["stubs.zip"], sha_url)
|
||||
break
|
||||
else:
|
||||
sys.exit("no release with a stubs.zip asset found")
|
||||
PYEOF
|
||||
) || die "no release with a stubs.zip asset found"
|
||||
|
||||
[[ -n "$TAG" ]] || die "could not determine a release to install"
|
||||
|
||||
WORKDIR="$(mktemp -d)"
|
||||
curl -fsSL "$ASSET_URL" -o "$WORKDIR/stubs.zip" || die "failed to download stubs.zip"
|
||||
|
||||
if [[ -n "$SHA_URL" ]]; then
|
||||
curl -fsSL "$SHA_URL" -o "$WORKDIR/stubs.zip.sha256" || die "failed to download stubs.zip.sha256"
|
||||
(cd "$WORKDIR" && sha256sum -c stubs.zip.sha256) || die "checksum verification failed for stubs.zip"
|
||||
else
|
||||
echo "warning: no stubs.zip.sha256 asset published for $TAG; skipping checksum verification" >&2
|
||||
fi
|
||||
|
||||
rm -rf stubs
|
||||
mkdir -p stubs
|
||||
unzip -q "$WORKDIR/stubs.zip" -d "$WORKDIR/outer"
|
||||
INNER="$WORKDIR/outer/pyi-files.zip"
|
||||
[[ -f "$INNER" ]] || die "expected pyi-files.zip inside stubs.zip, not found"
|
||||
unzip -q "$INNER" -d stubs
|
||||
|
||||
echo "installed SDK stubs from release $TAG into stubs/"
|
||||
Reference in new issue
Block a user