forked from phpbrew/phpbrew
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdate-release-json
More file actions
executable file
·39 lines (36 loc) · 1.4 KB
/
Copy pathupdate-release-json
File metadata and controls
executable file
·39 lines (36 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env php
<?php
require 'vendor/autoload.php';
$raw = file_get_contents('http://tw2.php.net/releases/index.php?serialize=1&version=5&max=100');
$obj = unserialize($raw);
$releaseVersions = array();
foreach($obj as $k => $v) {
if (preg_match('/^(\d+)\.(\d+)\./', $k, $matches)) {
list($o, $major, $minor) = $matches;
$release = array( 'version' => $k );
if (isset($v['announcement']['English'])) {
$release['announcement'] = 'http://php.net' . $v['announcement']['English'];
}
if (isset($v['date'])) {
$release['date'] = $v['date'];
}
foreach ($v['source'] as $source) {
if (isset($source['filename']) && preg_match('/\.tar\.bz2$/', $source['filename'])) {
$release['filename'] = $source['filename'];
$release['md5'] = $source['md5'];
$release['name'] = $source['name'];
if (isset($source['date'])) {
$release['date'] = $source['date'];
}
}
}
$releaseVersions["$major.$minor"][$k] = $release;
}
}
foreach($releaseVersions as $key => & $versions) {
uksort($releaseVersions[$key],function($a, $b) {
return version_compare($b, $a);
});
}
$json = json_encode($releaseVersions, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
file_put_contents('assets/releases.json', $json);