use better release list
[m6w6/pecl-ci] / php-version.php
1 <?php
2
3 $version = $argv[1];
4 $versions = @json_decode(stream_get_contents(STDIN), 1);
5
6 # check if we've got a distinct version
7 if (isset($versions[$version])) {
8 printf("%s\n", $version);
9 exit;
10 }
11
12 $by_minor = [];
13 # build the tree of latest versions per minor
14 foreach (array_keys((array) $versions) as $release) {
15 list($major, $minor, $patch) = explode(".", $release);
16 if (isset($by_minor["$major.$minor"])) {
17 if (version_compare($release, $by_minor["$major.$minor"], "<")) {
18 continue;
19 }
20 }
21 $by_minor["$major.$minor"] = $release;
22 }
23
24 # check latest release
25 if (isset($by_minor[$version])) {
26 printf("%s\n", $by_minor[$version]);
27 } else {
28 # failsafe
29 switch ($version) {
30 case "5.4":
31 print("5.4.43\n");
32 break;
33 case "5.5":
34 print("5.5.27\n");
35 break;
36 default:
37 print("5.6.11\n");
38 }
39 }