$max = find_max($lines, "/{$package}/", "/^.*{$package}-([\\d\\.]*\\d)\\.tar.*\$/");
    return $max;
}
function get_pattern($line)
{
    global $start;
    // Set up specific patter matches for extracting book versions
    $match = array();
    $match = array(array('pkg' => 'automoc', 'regex' => "/^.*automoc4-(\\d[\\d\\.]+).*\$/"), array('pkg' => 'polkit-qt', 'regex' => "/^.*polkit-qt-1-(\\d[\\d\\.]+).*\$/"), array('pkg' => 'polkit-kde-agent', 'regex' => "/^.*polkit-kde-agent-1-(\\d[\\d\\.]+).*\$/"));
    foreach ($match as $m) {
        $pkg = $m['pkg'];
        if (preg_match("/{$pkg}/", $line)) {
            return $m['regex'];
        }
    }
    return "/\\D*(\\d.*\\d)\\D*\$/";
}
get_current();
// Get what is in the book
// Get latest version for each package
foreach ($book as $pkg => $data) {
    $book_index = $pkg;
    $base = $data['basename'];
    $url = $data['url'];
    $bver = $data['version'];
    echo "book index: {$book_index} {$bver} {$url}\n";
    $v = get_packages($book_index, $url);
    $vers[$book_index] = $v;
}
html();
// Write html output
    <span class="icon-prev"></span>
  </a>
  <a class="right carousel-control" href="#carousel-example-generic" data-slide="next">
    <span class="icon-next"></span>
  </a>
</div>
<div class="empty" style="height:50px;"></div>
<div class="row">
<?php 
function get_packages($heading)
{
    global $connection;
    $query = "select * from package_names where heading='{$heading}'";
    foreach ($connection->query($query) as $values) {
        echo " <p><a href=\"itinerary.php?package={$values['2']}\">{$values['2']}</a></p>";
    }
}
$query = "select heading,photo_location from info where name='{$package}'";
$res1 = $connection->prepare($query);
$res1->execute();
while ($values = $res1->fetch()) {
    echo " <div class=\"col-md-6\">  \n <div class=\"panel panel-default\">\n  <div class=\"panel-heading\">\n    <h3 class=\"panel-title\">{$values['0']}</h3>\n  </div>\n  <div class=\"panel-body\">\n  <div class=\"col-md-6\">\n  <div class=\"panel panel-default\">\n  <div class=\"panel-body\">";
    get_packages($values[0]);
    echo "</div></div></div>\n<div class=\"col-md-6\">\n<div class=\"panel panel-default\">\n  <div class=\"panel-body\">\n  <img src=\"{$values['1']}\" />\n  </div>\n  </div>\n  </div>\n</div></div></div>\n";
}
?>
</div><!-- row -->

</div> <!--End of Container -->
<?php 
include "footer.php";
Exemple #3
0
    $max = find_max($lines, "/{$package}/", "/^.*{$package}-([\\d\\.]*\\d)\\.tar.*\$/");
    return $max;
}
function get_pattern($line)
{
    // Set up specific patter matches for extracting book versions
    $match = array();
    //$match[ 0 ] = array( 'pkg'   => 'ntfs',
    //                     'regex' => "/ntfs-3g_ntfsprogs-(\d.*\d)\D*$/" );
    foreach ($match as $m) {
        $pkg = $m['pkg'];
        if (preg_match("/{$pkg}/", $line)) {
            return $m['regex'];
        }
    }
    return "/\\D*(\\d.*\\d)\\D*\$/";
}
get_current();
// Get what is in the book
// Get latest version for each package
foreach ($book as $pkg => $data) {
    $book_index = $pkg;
    $base = $data['basename'];
    $url = $data['url'];
    $bver = $data['version'];
    echo "book index: {$book_index} {$bver} {$url}\n";
    $v = get_packages($base, $url);
    $vers[$book_index] = $v;
}
html();
// Write html output
Exemple #4
0
<?php

# ScriptUpdate - get packed file/do update
# $Id: pack.php,v 1.7 2007/10/29 08:20:33 nobu Exp $
include '../../../include/cp_header.php';
include_once '../package.class.php';
$res = $xoopsDB->query("SELECT * FROM " . UPDATE_PKG . " WHERE pversion='HEAD' ORDER BY pkgid");
if (!$res) {
    die($xoopsDB->error());
}
$pkgs = get_packages('all', true);
$buf = "";
$pkgn = 0;
$op = isset($_GET['op']) ? $_GET['op'] : 'update';
$date = formatTimestamp(time(), "Ymd");
$updatedir = "update-{$date}";
$backupdir = "backup-{$date}";
ob_start();
if ($xoopsDB->getRowsNum($res)) {
    // force clean work files
    $work = XOOPS_UPLOAD_PATH . "/update/work";
    if (is_dir("{$work}/{$updatedir}")) {
        system("rm -rf '{$work}/{$updatedir}'");
    }
    if (is_dir("{$work}/{$backupdir}")) {
        system("rm -rf '{$work}/{$backupdir}'");
    }
    while ($data = $xoopsDB->fetchArray($res)) {
        $pkg = new InstallPackage($data);
        $pkg->load();
        $pname = $pkg->getVar('pname');
header('CacheControl: no-cache, must-revalidate');
header('Expires: Tue, 1 Jan 1980 00:00:00 GMT');
header('Pragma: no-cache');
header('Content-Type: application/json');
// Get json raw data sent
$request_data = json_decode(file_get_contents("php://input"));
if (isset($whitelist)) {
    $api_key = get_request('api-key');
    if (!$api_key || !in_array($api_key, $whitelist)) {
        // http_response_code(403);
        print json_encode(array('error' => 'Access denied', 'reason' => 'Not in whitelist'));
        die;
    }
}
// get packages from loader
$packages = function_exists('get_packages') ? get_packages() : array();
// Get user agent
// $user_agent = $_SERVER['HTTP_USER_AGENT'];
// Get action
$action = strtolower(get_request('action'));
if ($action == 'list_all') {
    print json_encode($packages);
    die;
}
// Get data
$data = get_request('data');
if (is_a($data, 'StdClass')) {
    $data = object2array($data);
}
// TODO : check data is array or string...
function get_latest_version($slug)
Exemple #6
0
function html()
{
    global $date;
    global $vers;
    global $dirs;
    echo "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'\n                      'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>\n<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n<head>\n<title>LFS Package Currency Check - {$date}</title>\n<style type='text/css'>\nh1, h2 {\n   text-align      : center;\n}\n\ntable {\n   border-width    : 1px;\n   border-spacing  : 0px;\n   border-style    : outset;\n   border-color    : gray;\n   border-collapse : separate;\n   background-color: white;\n   margin          : 0px auto;\n}\n\ntable th {\n   border-width    : 1px;\n   padding         : 2px;\n   border-style    : inset;\n   border-color    : gray;\n   background-color: white;\n}\n\ntable td {\n   border-width    : 1px;\n   padding         : 2px;\n   border-style    : inset;\n   border-color    : gray;\n   background-color: white;\n}\n</style>\n\n</head>\n<body>\n<h1>BLFS Package Currency Check</h1>\n<h2>As of {$date} GMT</h1>\n\n<table>\n<tr><th>LFS Package</th> <th>LFS Version</th> <th>Latest</th> <th>Flag</th></tr>\n";
    // Get the latest version of each package
    foreach ($dirs as $pkg => $dir) {
        $v = get_packages($pkg, $dir);
        $flag = $vers[$pkg] != $v ? "*" : "";
        echo "<tr><td>{$pkg}</td> <td>{$vers[$pkg]}</td> <td>{$v}</td> <td>{$flag}</td></tr>\n";
    }
    echo "</table>\n</body>\n</html>\n";
}
    array_shift($argv);
    while ($arg = array_shift($argv)) {
        switch ($arg) {
            case "-n":
                $info['name'] = array_shift($argv);
                break;
            case "-h":
                $info['host'] = array_shift($argv);
                break;
            case "-d":
                $info['desc'] = array_shift($argv);
                break;
            case "-m":
                $mirrors = get_mirrors(array_shift($argv));
                break;
            case "-f":
                $pkglist = array_merge($pkglist, file(array_shift($argv)));
                break;
            case "-p":
                $flags['pkgdir'] = array_shift($argv);
                break;
            default:
                $pkglist[] = $arg;
        }
    }
    if (!$info['name'] or !$info['host']) {
        fwrite(STDERR, "WARNING: No information set for this repository!\n");
    }
    list($packages, $pkgdb) = get_packages($pkglist);
    print dump_xml_config_pkg($xmlout, "pkgrepo");
}
function reg_set_packages()
{
    global $xoopsDB;
    $active = get_active_list();
    $pkgs = get_packages('all');
    if (file_exists(ROLLBACK)) {
        unlink(ROLLBACK);
    }
    // expired
    $del = "DELETE FROM " . UPDATE_PKG . " WHERE pkgid=%u";
    $sel = "SELECT pkgid FROM " . UPDATE_PKG . " WHERE vcheck=%s AND pversion='HEAD'";
    $succ = 0;
    $pnames = isset($_POST['pname']) ? $_POST['pname'] : array();
    foreach ($pkgs as $pkg) {
        $dirname = $pkg['vcheck'];
        if (array_search($dirname, $active)) {
            $res = $xoopsDB->query(sprintf($sel, $xoopsDB->quoteString($dirname)));
            $pkgid = 0;
            if ($xoopsDB->getRowsNum($res) > 0) {
                list($pkgid) = $xoopsDB->fetchRow($res);
            }
            $pname = $pkg['pname'];
            if ($pkgid && !in_array($dirname, $pnames)) {
                // unchecked? (removed)
                if ($xoopsDB->query(sprintf($del, $pkgid))) {
                    $xoopsDB->query("DELETE FROM " . UPDATE_FILE . " WHERE pkgref={$pkgid}");
                    $succ++;
                }
            }
            clean_pkginfo();
            // garbege collection
        }
    }
    $ins = "INSERT INTO " . UPDATE_PKG . "(parent,pname,pversion,vcheck) VALUES(%u,%s,'HEAD',%s)";
    foreach ($pnames as $dirname) {
        if (!in_array($dirname, $active)) {
            if (isset($pkgs[$dirname])) {
                $pkg = $pkgs[$dirname];
            } else {
                $pkg = PackageList::selectPackage($dirname);
            }
            $par = empty($pkg['pkgid']) ? 0 : $pkg['pkgid'];
            if (register_detail($pkg['pname'], $dirname)) {
                $succ++;
            }
        }
    }
    if ($succ) {
        clear_get_cache(0, 'list');
    }
    return $succ;
}
Exemple #9
0
function check_packages()
{
    global $xoopsDB, $xoopsModuleConfig, $xoopsConfig;
    $res = $xoopsDB->query("SELECT p1.*, p2.vcheck dirname, p2.pversion ppversion FROM " . UPDATE_PKG . " p1 LEFT JOIN " . UPDATE_PKG . " p2 ON p1.parent=p2.pkgid WHERE p1.pversion='HEAD' ORDER BY p1.vcheck");
    $pkgs = get_packages('all', false);
    echo "<h3>" . _AM_CHECK_LIST . "</h3>\n";
    echo "<table cellspacing='1' class='outer'>\n";
    echo "<tr><th>" . _AM_PKG_PNAME . "</th><th>" . _AM_PKG_CURRENT . "</th><th>" . _AM_PKG_DIRNAME . "</th><th>" . _AM_PKG_NEW . "</th><th>" . _AM_PKG_DTIME . "</th><th>" . _AM_CHANGES . "</th><th>" . _AM_MODIFYS . "</th><th></th></tr>\n";
    $n = 0;
    $update = false;
    // find update package?
    $modify = false;
    $errors = array();
    $module_handler =& xoops_gethandler('module');
    while ($data = $xoopsDB->fetchArray($res)) {
        $pname = $data['pname'];
        $dirname = $data['vcheck'];
        // real dirname
        $pdir = empty($data['dirname']) ? $dirname : $data['dirname'];
        $bg = $n++ % 2 ? 'even' : 'odd';
        $id = $data['pkgid'];
        $newpkg = isset($pkgs[$pdir]) ? $pkgs[$pdir] : array();
        if (empty($newpkg)) {
            foreach ($pkgs as $pkg) {
                // find by name
                if ($pname == $pkg['pname']) {
                    $newpkg = $pkg;
                    break;
                }
            }
        }
        $newver = isset($newpkg['pversion']) ? $newpkg['pversion'] : '';
        $curver = get_current_version($pname, $dirname);
        $modver = $curver[1];
        // version string (0: normalize, 1: raw)
        if (empty($data['parent']) || !in_array($data['ppversion'], $curver)) {
            $par = import_new_package($pname, $modver, $pdir);
            if (empty($par)) {
                $errors[] = "{$pname} {$modver}: " . _AM_PKG_NOTFOUND;
            } else {
                $pid = $data['parent'] = $par->getVar('pkgid');
                $pnm = $data['name'] = $par->getVar('name');
                $ctm = $data['ctime'] = time();
                $data['ppversion'] = $par->getVar('pversion');
                $xoopsDB->queryF("UPDATE " . UPDATE_PKG . " SET parent={$pid}, name=" . $xoopsDB->quoteString($pnm) . ", mtime=0, ctime={$ctm} WHERE pkgid={$id}");
            }
        }
        if (!empty($data['ppversion'])) {
            $pversion = $data['ppversion'];
            $past = time() - $data['mtime'];
            if ($past > $xoopsModuleConfig['cache_time']) {
                $pkg = new InstallPackage($data);
                $pkg->load();
                $count = count($pkg->checkFiles());
                if (!$count) {
                    $xoopsDB->queryF("UPDATE " . UPDATE_PKG . " SET mtime=" . time() . " WHERE pkgid=" . $id);
                }
            } else {
                $count = 0;
            }
            $opt = "&pkgid={$id}";
            if (!$count) {
                $opt .= "&view=yes";
            }
            $op = "<a href='index.php?op=detail{$opt}'>" . ($count ? _AM_MODIFY : _AM_DETAIL) . "</a>";
        } else {
            // no manifesto
            $pversion = "";
            $op = "";
            $count = 0;
        }
        if ($count) {
            $modify = true;
        }
        if (!empty($newpkg)) {
            $newver = $newpkg['pversion'];
            $newdate = formatTimestamp($newpkg['dtime'], "m");
        } else {
            $newver = '-';
            $newdate = '-';
        }
        $mcount = count_modify_files($data['pkgid']);
        if ($pversion != $newver) {
            $bg = 'up';
            $uppkg = import_new_package($pname, $newver);
            if ($uppkg) {
                $pid = $uppkg->getVar('pkgid');
                $newver = "<a href='index.php?op=detail&pkgid={$id}&new={$pid}&view=yes'>" . htmlspecialchars($newver) . "</a>";
                $update = true;
            }
        } else {
            $newver = htmlspecialchars($newver);
        }
        if ($count) {
            $bg = 'fix';
        }
        // check module update
        $vers = htmlspecialchars($modver);
        if (!empty($dirname)) {
            $module = $module_handler->getByDirname($dirname);
            if (is_object($module)) {
                // installed?
                $mver = $module->getVar("version") / 100;
                if (!in_array($mver, $curver)) {
                    $url = get_system_url("ModuleUpdate", $dirname);
                    $vers = "<a href='{$url}' title='" . _AM_PKG_NEEDUPDATE . "'>{$vers} ({$mver})</a>";
                }
            } else {
                $url = get_system_url("ModuleInstall", $dirname);
                $vers = "<a href='{$url}' title='" . _AM_PKG_NOTINSTALL . "'>{$vers} (-)</span>";
            }
        }
        echo "<tr class='{$bg}'><td><a href='index.php?op=opts&pkgid={$id}'>" . htmlspecialchars($pname) . "</a></td><td>" . $vers . "</td><td>{$dirname}</td><td>" . $newver . "</td><td>{$newdate}</td><td align='right'>{$count}</td><td align='right'>{$mcount}</td><td>{$op}</td></tr>\n";
    }
    echo "</table>\n";
    if ($update && !$modify) {
        echo "<table cellpadding='5'>\n<tr>\n  <td><a href='pack.php?op=backup'>" . _AM_UPDATE_BACKUP . "</a></td>\n  <td><a href='pack.php?op=update'>" . _AM_UPDATE_ARCHIVE . "</a></td>\n  <td>";
        if (preg_match('/^Yes/', mysystem("check"))) {
            echo "\n    <form action='pack.php?op=exec' method='post'>\n    <input type='submit' value='" . _AM_UPDATE_SUBMIT . "'>\n    </form>";
        }
        echo "\n  </td>\n</tr>\n</table>\n";
    }
    $rollback = ROLLBACK;
    if (file_exists($rollback)) {
        $ctime = filectime($rollback);
        $expire = $ctime + $xoopsModuleConfig['cache_time'];
        if ($expire < time()) {
            unlink($rollback);
        } else {
            $tm = _AM_UPDATE_TIME . ' ' . formatTimestamp($ctime, 'm');
            $until = _AM_UPDATE_EXPIRE . ' ' . formatTimestamp($expire, 'H:i');
            echo "<table cellpadding='5'>\n  <tr><td>\n    <form action='index.php?op=rollback' method='post'>\n    <input type='submit' value='" . _AM_UPDATE_ROLLBACK . "'></form></td>\n    <td>{$tm} ({$until})</td></tr>\n</table>\n";
        }
    }
    if ($errors) {
        echo "<br/><div class='errorMsg'>\n";
        foreach ($errors as $msg) {
            echo "{$msg}<br/>\n";
        }
        echo "</div>\n";
    }
}