$maintainers = $dbh->getAll('SELECT * FROM users', array(), DB_FETCHMODE_ASSOC); foreach ($maintainers as $maintainer) { echo " {$maintainer['handle']}..."; $pear_rest->saveMaintainerREST($maintainer['handle']); echo "done\n"; } echo "Generating All Maintainers REST...\n"; $pear_rest->saveAllMaintainersREST(); echo "done\n"; echo "Generating Package REST...\n"; $pear_rest->saveAllPackagesREST(); require_once 'Archive/Tar.php'; require_once 'PEAR/PackageFile.php'; $config =& PEAR_Config::singleton(); $pkg = new PEAR_PackageFile($config); foreach (package::listAll(false, false, false) as $package => $info) { echo " {$package}\n"; $pear_rest->savePackageREST($package); echo " Maintainers..."; $pear_rest->savePackageMaintainerREST($package); echo "...done\n"; $releases = package::info($package, 'releases'); if ($releases) { echo " Processing All Releases..."; $pear_rest->saveAllReleasesREST($package); echo "done\n"; foreach ($releases as $version => $blah) { $fileinfo = $dbh->getOne('SELECT fullpath FROM files WHERE release = ?', array($blah['id'])); if (!$fileinfo) { echo " Skipping INVALID Version {$version} (corrupt in database!)\n"; continue;
/** * */ function search($fragment, $summary = false, $released_only = true, $stable_only = true, $include_pear = false) { $all = package::listAll($released_only, $stable_only, $include_pear); if (!$all) { return PEAR::raiseError('no packages found'); } $ret = array(); foreach ($all as $name => $info) { $found = !empty($fragment) && stristr($name, $fragment) !== false; if (!$found && !(isset($summary) && !empty($summary) && (stristr($info['summary'], $summary) !== false || stristr($info['description'], $summary) !== false))) { continue; } $ret[$name] = $info; } return $ret; }
auth_require('pear.qa'); require 'HTML/Table.php'; extra_styles('/css/packages_status.css'); // Sortable tables http://www.kryogenix.org/code/browser/sorttable/ $extra_header = '<script type="text/javascript" src="/javascript/sorttable.js"></script>'; $states = array('snapshot', 'devel', 'alpha', 'beta', 'stable'); response_header('Quality Assurance Initiative - Packages status', false, $extra_header); $state = htmlspecialchars($_GET['state']); if (!in_array($state, $states)) { report_error('This is not a valid state'); response_footer(); exit; } include_once 'pear-database-package.php'; $pck = new package(); $packages = $pck->listAll(false, false); if (PEAR::isError($packages)) { report_error('Cannot list packages'); response_footer(); exit; } $total_packages_nbr = $studied_packages_nbr = 0; $tables = array(); $time_scale = 15552000; // how much time elapsed since last release, in seconds $tables[$state]['old'] = new HTML_Table(array('id' => 'old', 'cellspacing' => 0, 'class' => 'sortable')); $tables[$state]['old']->setCaption('Packages with state <em>' . $state . '</em> which have not been released in ' . $time_scale / 86400 . ' days'); $tables[$state]['old']->setHeaderContents(0, 0, 'Package'); $tables[$state]['old']->setHeaderContents(0, 1, 'Version'); $tables[$state]['old']->setHeaderContents(0, 2, 'Date'); $tables[$state]['old']->setHeaderContents(0, 3, '# bugs');