feat(install): improve version tag validation and update download URL

- ensure valid semver tags when fetching version
- validate fallback version tag format
- switch download URL to Gitea releases
This commit is contained in:
juanarias8
2026-03-10 14:25:52 -05:00
parent f4a5c98328
commit 8565916178

View File

@@ -47,12 +47,17 @@ if [ -n "$REQUESTED_VERSION" ]; then
*) VERSION_TAG="v$REQUESTED_VERSION" ;; *) VERSION_TAG="v$REQUESTED_VERSION" ;;
esac esac
else else
# Try manifest first (fast, no rate limits) # Try manifest first (fast, no rate limits) — only accept valid semver tags
VERSION_TAG=$(curl -sL "https://gitea.app.monadical.io/monadical/greywall/latest.txt" 2>/dev/null || echo "") VERSION_TAG=$(curl -sL "https://gitea.app.monadical.io/monadical/greywall/raw/branch/gh-pages/latest.txt" 2>/dev/null | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' | head -1 || echo "")
# Fallback to GitHub API if manifest fails # Fallback to Gitea API if manifest fails
if [ -z "$VERSION_TAG" ]; then if [ -z "$VERSION_TAG" ]; then
VERSION_TAG=$(curl -s "https://gitea.app.monadical.io/api/v1/repos/$REPO/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') VERSION_TAG=$(curl -s "https://gitea.app.monadical.io/api/v1/repos/$REPO/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
# Validate it looks like a version tag
case "$VERSION_TAG" in
v[0-9]*) ;;
*) VERSION_TAG="" ;;
esac
fi fi
fi fi
@@ -69,7 +74,7 @@ case "$OS" in
*) OS_TITLE="$OS" ;; *) OS_TITLE="$OS" ;;
esac esac
DOWNLOAD_URL="https://github.com/$REPO/releases/download/${VERSION_TAG}/${BINARY_NAME}_${VERSION_NUMBER}_${OS_TITLE}_${ARCH}.tar.gz" DOWNLOAD_URL="https://gitea.app.monadical.io/$REPO/releases/download/${VERSION_TAG}/${BINARY_NAME}_${VERSION_NUMBER}_${OS_TITLE}_${ARCH}.tar.gz"
TMP_DIR=$(mktemp -d) TMP_DIR=$(mktemp -d)
cd "$TMP_DIR" cd "$TMP_DIR"