blob: 06995f2639fea79269da9f6225c475c26956b086 [file] [log] [blame]
#!/usr/bin/env php
<?php
/**
* command line program.
* From the various datastructure, generates some json files which are going
* to be used by other Mozilla applications
*
* @author Release management <release-mgmt@mozilla.com>
*/
define('JSONDIR', dirname(__FILE__).'/json/');
/**
* Write a JSON file
*
* @param string $filename the name of the json file
* @param Array $data the datastructure which is going to be exported in
* the file
*
* @return void
*/
function writefile($filename, $data)
{
file_put_contents(JSONDIR.$filename, json_encode($data, JSON_PRETTY_PRINT));
}
/** Locale Details */
require_once 'localeDetails.class.php';
$ld = new localeDetails();
writefile('languages.json', $ld->languages);
/** Product Details */
// Firefox Versions
require_once 'firefoxDetails.class.php';
$fx_constants = array('LATEST_FIREFOX_VERSION',
'LATEST_FIREFOX_DEVEL_VERSION',
'LATEST_FIREFOX_RELEASED_DEVEL_VERSION',
'LATEST_FIREFOX_OLDER_VERSION',
'FIREFOX_AURORA',
'FIREFOX_ESR',
'FIREFOX_ESR_NEXT'
);
$versiondata = array();
foreach ($fx_constants as $fx_c) {
$versiondata[$fx_c] = constant($fx_c);
}
writefile('firefox_versions.json', $versiondata);
/**
* Generate the list of filesize. Values are useless but some code might
* expect it
* { 'Windows': { 'filesize': '9.0' }, 'OS X': { ... etc ... } }
*
* @param Array $builds the declaration array
*
* @return Array the datastructure with the filesize inside
*/
function fillFileSize($builds)
{
/* Create the filesize data structure which is going to be
* duplicated
*/
$filesize = array(
'Windows' => array('filesize' => 0),
'OS X' => array('filesize' => 0),
'Linux' => array('filesize' => 0),
);
/*
* For each locales and version, insert the filesize
*/
$newBuild=array();
foreach ($builds as $locale => $build) {
foreach ($build as $version) {
$newBuild[$locale][$version] = $filesize;
}
}
return $newBuild;
}
// Firefox Primary Builds
$fxd = new firefoxDetails();
$builds = array('primary_builds', 'beta_builds');
foreach ($builds as $build) {
$buildArray = fillFileSize($fxd->$build);
writefile("firefox_{$build}.json", $buildArray);
}
// Firefox History
require_once 'history/firefoxHistory.class.php';
$fxh = new firefoxHistory();
$releases = array('major_releases', 'stability_releases', 'development_releases');
foreach ($releases as $release) {
writefile("firefox_history_{$release}.json", $fxh->$release);
}
// Thunderbird Versions
require_once 'thunderbirdDetails.class.php';
$tb_constants = array('LATEST_THUNDERBIRD_VERSION',
);
$versiondata = array();
foreach ($tb_constants as $tb_c) {
$versiondata[$tb_c] = constant($tb_c);
}
writefile('thunderbird_versions.json', $versiondata);
// Firefox Primary Builds
$tbd = new thunderbirdDetails();
$builds = array('primary_builds', 'beta_builds');
foreach ($builds as $build) {
writefile("thunderbird_{$build}.json", $tbd->$build);
}
// Thunderbird History
require_once 'history/thunderbirdHistory.class.php';
$tbh = new thunderbirdHistory();
$releases = array('major_releases', 'stability_releases', 'development_releases');
foreach ($releases as $release) {
writefile("thunderbird_history_{$release}.json", $tbh->$release);
}
// Mobile Details
require_once 'mobileDetails.class.php';
$mobile = array(
'version' => mobileDetails::latest_version,
'beta_version' => mobileDetails::beta_version,
'alpha_version' => mobileDetails::alpha_version,
'builds' => mobileDetails::primary_builds(false),
'beta_builds' => mobileDetails::beta_builds(false),
'alpha_builds' => mobileDetails::alpha_builds(false),
);
writefile('mobile_details.json', $mobile);
// Mobile History
require_once 'history/mobileHistory.class.php';
$mobh = new mobileHistory();
$releases = array('major_releases', 'stability_releases', 'development_releases');
foreach ($releases as $release) {
writefile("mobile_history_{$release}.json", $mobh->$release);
}
// Region details
require_once 'regionDetails.class.php';
if (!file_exists(JSONDIR."regions")) {
mkdir(JSONDIR."regions");
}
$rd = new regionDetails();
foreach ($ld->languages as $lang => $names) {
$names = $rd->getRegionNames($lang);
if (!empty($names)) {
writefile("regions/$lang.json", $names);
}
}