mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-06 21:24:10 +00:00
fix: correct JSON parsing for prerelease detection in GitHub API response
The GitHub API returns "prerelease": false (with space after colon), but
the grep pattern used "prerelease":false (no space). Also, tag_name and
prerelease are on different lines after tr '{' '\\n', so the piped grep
chain couldn't find both fields. Fixed with grep -B5 to look backwards
from prerelease line to find tag_name.
This commit is contained in:
parent
f6d993c29d
commit
2b7eebd302
2 changed files with 4 additions and 4 deletions
|
|
@ -884,10 +884,10 @@ get_releases() {
|
|||
fi
|
||||
|
||||
# Parse first non-prerelease tag_name
|
||||
latest_stable=$(echo "$releases_json" | tr '{' '\n' | grep '"prerelease":false' | head -1 | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
||||
latest_stable=$(echo "$releases_json" | tr '{' '\n' | grep -B5 '"prerelease": false' | grep '"tag_name":' | head -1 | sed -E 's/.*"([^"]+)".*/\1/')
|
||||
|
||||
# Parse first prerelease tag_name
|
||||
latest_prerelease=$(echo "$releases_json" | tr '{' '\n' | grep '"prerelease":true' | head -1 | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
||||
latest_prerelease=$(echo "$releases_json" | tr '{' '\n' | grep -B5 '"prerelease": true' | grep '"tag_name":' | head -1 | sed -E 's/.*"([^"]+)".*/\1/')
|
||||
|
||||
if [[ -z "$latest_stable" && -z "$latest_prerelease" ]]; then
|
||||
echo -e "${red}获取 x-ui 版本失败${plain}"
|
||||
|
|
|
|||
|
|
@ -756,8 +756,8 @@ get_releases() {
|
|||
fi
|
||||
fi
|
||||
|
||||
latest_stable=$(echo "$releases_json" | tr '{' '\n' | grep '"prerelease":false' | head -1 | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
||||
latest_prerelease=$(echo "$releases_json" | tr '{' '\n' | grep '"prerelease":true' | head -1 | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
||||
latest_stable=$(echo "$releases_json" | tr '{' '\n' | grep -B5 '"prerelease": false' | grep '"tag_name":' | head -1 | sed -E 's/.*"([^"]+)".*/\1/')
|
||||
latest_prerelease=$(echo "$releases_json" | tr '{' '\n' | grep -B5 '"prerelease": true' | grep '"tag_name":' | head -1 | sed -E 's/.*"([^"]+)".*/\1/')
|
||||
|
||||
if [[ -z "$latest_stable" && -z "$latest_prerelease" ]]; then
|
||||
_fail "ERROR: Failed to fetch x-ui version"
|
||||
|
|
|
|||
Loading…
Reference in a new issue