blob: 4cfcc75e9640b038be1b27dd7989fc539f345e49 [file] [log] [blame]
<?php
// Author: Mike Squillace; masquill@us.ibm.com
// Author: Kentarou FUKUDA: kentarou@jp.ibm.com
$columns = array("File", "Version", "Build ID", "Size");
$downloadsDirName = $App->getDownloadBasePath() . "/";
$projectName = "technology/actf";
$rootDirName = $downloadsDirName . $projectName;
$archiveDirName = "/home/data/httpd/archive.eclipse.org/technology/actf";
// Sorts by newest file first
function date_cmp ($archiveMap1, $archiveMap2) {
$f1stats = stat($archiveMap1['parentDir'] . $archiveMap1['fileName']);
$f2stats = stat($archiveMap2['parentDir'] . $archiveMap2['fileName']);
return $f2stats['mtime']-$f1stats['mtime'];
}
// construct row entries for each dev build
// parameters:
// $category - one of 'tools' or 'components'
// $elementName - name of tool or component
//
// directory structure is assumed to be:
// $rootDirName/$category/$elementName/version/archive
function generateReleaseTableRows ($isArchive, $category, $elementName){
ini_set("max_execution_time",10);
$dirName = $GLOBALS['rootDirName'] . '/' . $category . '/' . $elementName;
if($isArchive){
$dirName = $GLOBALS['archiveDirName'] . '/' . $category . '/' . $elementName;
}
$archiveMaps = array();
// read version directories
if (($dir = @opendir($dirName))) {
while (false !== ($versionDirName = readdir($dir))) {
if ($versionDirName == "." || $versionDirName == "..") {
continue;
}
if (preg_match('/[0-9]+\.[0-9]+\.[0-9]+/',$versionDirName)) {
$version = $versionDirName;
$versionDirName = $dirName . '/' . $versionDirName;
// read archives
if (($versionDir = @opendir($versionDirName))) {
while (false !== ($fileName = readdir($versionDir))) {
if ($fileName == "." || $fileName == "..") {
continue;
}
$archivePattern = '/.*\-' . $elementName . '\-(runtime|sdk)?\-?(incubation\-)?([nNiIsSmM]?[0-9]+).*\.zip/';
if (preg_match($archivePattern, $fileName, $matches)) {
$archiveMaps[] = array(
'fileName' => $fileName,
'parentDir' => $versionDirName . '/',
'version' => $version,
'buildId' => $matches[3]
);
}
} // next archive file
@closedir($versionDir);
}
}
} // next version directory
@closedir($dir);
}
usort($archiveMaps, "date_cmp");
$str = "";
foreach ($archiveMaps as $archive) {
$str = $str . "<tr>\n";
// name and URL
$str = $str . "<td>";
$fileName = $archive['fileName'];
$dir = $archive['parentDir'];
$relativePath = substr($dir, stripos($dir, $GLOBALS['projectName']));
$str = $str . "<a href=\"http://www.eclipse.org/downloads/download.php?file=/" . $relativePath . $fileName . "\">";
$str = $str . $fileName . "</a>";
$str = $str . "</td>\n";
// version
$str = $str . "<td>";
$str = $str . $archive['version'];
$str = $str . "</td>\n";
// build id
$str = $str . "<td>";
$str = $str . $archive['buildId'];
$str = $str . "</td>\n";
// file size
$str = $str . "<td>";
$file = $dir . $fileName;
$fileInfo = stat($file);
$str = $str . round($fileInfo['size'] / 1024) . "KB";
$str = $str . "</td>\n";
$str = $str . "</tr>\n";
}
return $str;
}
function generateColumnHeaders () {
$str = "<tr>\n";
foreach ($GLOBALS['columns'] as $column) {
$str = $str . "<th>" . $column . "</th>\n";
}
$str = $str . "</tr>\n";
return $str;
}
function generateReleaseTable ($category, $elementName) {
$releaseTable = "<table width='80%' border='2'>\n";
$releaseTable = $releaseTable . generateColumnHeaders();
$releaseTable = $releaseTable . generateReleaseTableRows(false, $category, $elementName);
$releaseTable = $releaseTable . "</table>\n";
return $releaseTable;
}
function generateArchiveTable ($category, $elementName) {
$releaseTable = "<table width='80%' border='2'>\n";
$releaseTable = $releaseTable . generateColumnHeaders();
$releaseTable = $releaseTable . generateReleaseTableRows(true, $category, $elementName);
$releaseTable = $releaseTable . "</table>\n";
return $releaseTable;
}
?>