make optically consistent
[m6w6/pecl-ci] / php-version.php
1 #!/usr/bin/env php
2 <?php
3
4 $version = $argv[1];
5 $versions = @json_decode(stream_get_contents(STDIN), 1);
6
7 # check if we've got a distinct version
8 if (isset($versions[$version])) {
9 printf("%s\n", $version);
10 exit;
11 }
12
13 $by_minor = array();
14 # build the tree of latest versions per minor
15 if (!empty($versions) && !isset($versions["error"])) {
16 foreach (array_keys((array) $versions) as $release) {
17 list($major, $minor, $patch) = explode(".", $release);
18 if (isset($by_minor["$major.$minor"])) {
19 if (version_compare($release, $by_minor["$major.$minor"], "<")) {
20 continue;
21 }
22 }
23 $by_minor["$major.$minor"] = $release;
24 }
25 }
26 # check latest release
27 if (isset($by_minor[$version])) {
28 printf("%s\n", $by_minor[$version]);
29 } else {
30 # failsafe
31 switch ($version) {
32 case "5.4":
33 print("5.4.45\n");
34 break;
35 case "5.5":
36 print("5.5.37\n");
37 break;
38 case "5.6":
39 print("5.6.33\n");
40 break;
41 case "7.0":
42 print("7.0.27\n");
43 break;
44 case "7.1":
45 print("7.1.14\n");
46 break;
47 case "7.2":
48 print("7.2.2\n");
49 break;
50 case "master":
51 print("master\n");
52 break;
53 default:
54 printf("%s\n", $version);
55 }
56 }