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:
15
install.sh
15
install.sh
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user