Fetch PHP versions from GitHub

Instead of using a hardcoded list of PHP versions, we can fetch them
directly from GitHub and have the list always up to date.
This commit is contained in:
belaustegui
2016-10-16 14:41:24 +02:00
parent 12501c6764
commit e5ee4d60a3

View File

@@ -1,214 +1,14 @@
#!/usr/bin/env bash
# Each of these values can be used to build the url to the archive containing
# the source code for each version
# (e.g. https://php.net/get/php-<version_name>.tar.gz/from/a/mirror)
versions=$(curl -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
grep -Ev "beta|alpha|RC" | # Remove betas, alphas and RCs
sed 's/\"ref\"://' | # Remove '"ref":'
sed 's/\"refs\/tags\/php-//' | # Remove '"refs/tags/php-"'
sed 's/\",//' | # Remove last '",'
sort -V) # Sort by version
versions_list=(
7.0.2
7.0.1
7.0.0
5.6.17
5.5.31
5.6.16
5.5.30
5.6.15
5.6.14
5.6.13
5.5.29
5.5.28
5.6.12
5.6.11
5.5.27
5.6.10
5.5.26
5.6.9
5.5.25
5.6.8
5.5.24
5.6.7
5.5.23
5.6.6
5.5.22
5.6.5
5.5.21
5.6.4
5.5.20
5.6.3
5.5.19
5.6.2
5.5.18
5.6.1
5.5.17
5.6.0
5.5.16
5.5.15
5.5.14
5.5.13
5.5.12
5.5.11
5.5.10
5.5.9
5.5.8
5.5.7
5.5.6
5.5.5
5.5.4
5.5.3
5.5.2
5.5.1
5.5.0
5.4.45
5.4.44
5.4.43
5.4.42
5.4.41
5.4.40
5.4.39
5.4.38
5.4.37
5.4.36
5.4.35
5.4.34
5.4.33
5.4.32
5.4.31
5.4.30
5.4.29
5.4.28
5.4.27
5.4.26
5.4.25
5.4.24
5.4.23
5.4.22
5.4.21
5.4.20
5.4.19
5.4.18
5.4.17
5.4.16
5.4.15
5.4.14
5.4.13
5.4.12
5.4.11
5.4.10
5.4.9
5.4.8
5.4.7
5.4.6
5.4.5
5.4.4
5.4.3
5.4.2
5.4.1
5.4.0
5.3.29
5.3.28
5.3.27
5.3.26
5.3.25
5.3.24
5.3.23
5.3.22
5.3.21
5.3.20
5.3.19
5.3.18
5.3.17
5.3.16
5.3.15
5.3.14
5.3.13
5.3.12
5.3.11
5.3.10
5.3.9
5.3.8
5.3.7
5.3.6
5.3.5
5.3.4
5.2.17
5.2.16
5.2.15
5.3.3
5.2.14
5.3.2
5.2.13
5.3.1
5.2.12
5.2.11
5.3.0
5.2.10
5.2.9
5.2.8
5.2.6
5.2.5
5.2.4
5.2.3
5.2.2
5.2.1
5.2.0
5.1.6
5.1.5
5.1.4
5.1.3
5.1.2
5.1.1
5.1.0
5.0.5
5.0.4
5.0.3
5.0.2
5.0.1
5.0.0
4.4.9
4.4.8
4.4.7
4.4.6
4.4.5
4.4.4
4.4.3
4.4.2
4.4.1
4.4.0
4.3.11
4.3.10
4.3.9
4.3.8
4.3.7
4.3.6
4.3.5
4.3.4
4.3.3
4.3.2
4.3.1
4.3.0
4.2.3
4.2.2
4.2.1
4.2.0
4.1.2
4.1.1
4.1.0
4.0.6
4.0.5
4.0.4
4.0.3
4.0.2
4.0.1
4.0.0
)
versions=""
sorted_versions=($(printf '%s\n' "${versions_list[@]}"|sort))
# Concatenate all the versions together separated by spaces
for version in "${sorted_versions[@]}"; do
versions="${versions} ${version}"
done
# Print out the versions
echo $versions
# As per the documentation, all versions should be in a single line separated
# by spaces. We use `xargs` for this.
echo $versions | xargs