2
0
mirror of https://github.com/boostorg/website.git synced 2026-01-29 20:12:14 +00:00

Generate download data.

This commit is contained in:
Daniel James
2016-05-29 19:49:01 +01:00
parent 7a9b625aca
commit a392425e9f

View File

@@ -0,0 +1,74 @@
<?php
require_once(__DIR__.'/../common/code/boost.php');
function main() {
$site_tools = new BoostSiteTools(__DIR__.'/..');
$pages = $site_tools->load_pages();
$downloads = array();
foreach($pages->pages as $path => $page) {
if ($page->type === 'release') {
if (strpos($path, 'unversioned.qbk') === false) {
$version = BoostVersion::from($path);
$version_name = (string) $version;
}
else {
$version = null;
$version_name = 'unversioned';
}
$download_table_data = $page->download_table_data() ?: array();
if (is_string($download_table_data)) switch($download_table_data) {
case 'http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041&release_id=138112':
$download_table_data = array(
'downloads' => array(
'unix' => array(
array( 'url' => 'https://sourceforge.net/projects/boost/files/boost/1.20.2/boost-1.20.2.tar.bz2' ),
array( 'url' => 'https://sourceforge.net/projects/boost/files/boost/1.20.2/boost-1.20.2.tar.gz' ),
),
'windows' => array(
array( 'url' => 'https://sourceforge.net/projects/boost/files/boost/1.20.2/boost-1_20_2.zip' ),
),
)
);
break;
case 'http://sourceforge.net/projects/boost/files/boost-jam/3.1.18/':
$download_table_data = array();
break;
default:
echo "Unknown download: ", $download_table_data, "\n";
exit(0);
}
$entry = array_merge(
array(
'release_notes' => $path,
'release_status' => $page->release_status,
'version' => (string) $version,
'documentation' => $page->documentation,
'download_page' => $page->download_item,
),
$download_table_data);
if (!empty($entry['downloads'])) {
$x = $entry['downloads'];
$entry['downloads'] = array();
foreach($x as $line_endings => $y) {
foreach ($y as $download) {
$download['line_endings'] = $line_endings;
$entry['downloads'][] = $download;
}
}
}
$downloads[$version_name] = $entry;
}
}
file_put_contents(
__DIR__.'/../feed/history/releases.json',
json_encode($downloads, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
}
main();