Update list-all

This commit is contained in:
BSKY
2020-02-12 10:52:06 +09:00
parent 3b230cf588
commit e02aef9bcf

View File

@@ -1,22 +1,19 @@
#!/usr/bin/env bash
auth=""
set -eo pipefail
cmd="curl --silent --location"
releases_path="https://api.github.com/repos/php/php-src/git/refs/tags"
if [ -n "$GITHUB_API_TOKEN" ]; then
auth="-H 'Authorization: token $GITHUB_API_TOKEN'"
cmd="$cmd --header 'Authorization: token $GITHUB_API_TOKEN'"
fi
sed="sed"
if hash gsed 2>/dev/null; then
sed="gsed"
fi
sort_versions() {
sed 'h; s/[+-]/./g; s/.p\([[:digit:]]\)/.z\1/; s/$/.z/; G; s/\n/ /' |
LC_ALL=C sort -t. -k 1,1 -k 2,2n -k 3,3n -k 4,4n -k 5,5n | awk '{print $2}'
}
versions=$(curl $auth -s https://api.github.com/repos/php/php-src/git/refs/tags | # Fetch all tags
grep '"ref":' | # Filter by refs
grep 'php-' | # Filter only those related to php-xxxx
$sed 's/\"ref\"://' | # Remove '"ref":'
$sed 's/\"refs\/tags\/php-//' | # Remove '"refs/tags/php-"'
$sed 's/\",//') # Remove last '",'
versions=$(eval "$cmd $releases_path" | grep '"ref": "refs/tags/php-' | tr -d '"ref": "refs/tags/php-' | tr -d ',' | sort_versions | xargs)
# As per the documentation, all versions should be in a single line separated
# by spaces. We use `xargs` for this.
echo $versions | xargs
echo "$versions"