[cvs] / vanilla / kv.php  

cvs: vanilla/kv.php

File: [cvs] / vanilla / kv.php (download) (as text)
Revision: 1.1, Fri Jul 30 22:11:05 2004 UTC (8 years, 9 months ago) by tmcnulty
Branch point for: gkb, MAIN
Initial revision

<?php
    header
("Content-Type: text/plain");
    
    echo 
"Getting list of kernel versions...";
    include(
"kernel_version.inc");
    echo 
"done.\n";
    
    
$home="/var/rsync/kernel";
    
    function 
checkDir($dir) {
        if (!
file_exists($dir))
            
mkdir($dir,0755);
    }
    
    function 
download($remote,$local) {
        
$result true;
        
        
/*if (!$rh = fopen($remote,"r")) {
            echo "fopen failed " . __LINE__ . "\n";
            return false;
        }
        
        if (!$lh = fopen($local,"w")) {
            echo "fopen failed " . __LINE__ . "\n";
            return false;
        }
        
        $buf = "";
        while (!feof($rh)) {
            $buf = fread($rh, 4096);
            fwrite($lh,$buf);
        }
        
        fclose($rh);
        fclose($lh);*/
        
        
echo "Downloading \"$remote\"...\n";
        
        if (
file_exists($local))
            
$result system("wget -q -c -O $local $remote");
        else
            
$result system("wget -q -O $local $remote");
        
        
$result = !$result;
        return 
$result;
    }
    
    function 
getLocalVersion($name) {
        global 
$home;
        if (
file_exists("$home/$name/Makefile"))
            
$result trim(`awk -F '=' '/^VERSION/{v=$2} /^PATCHLEVEL/{p=$2} /^SUBLEVEL/{s=$2} /^EXTRAVERSION/{e=$2} END { printf("%s.%s.%s%s\\n", v, p, s, e) }' $home/$name/Makefile | sed "s/ //g"`);
        else
            
$result "(none available)";
        
        return 
$result;
    }
    
    function 
getSource($k) {
        global 
$home;
        
        
checkDir("$home/tmp");
        
        
$localfile "$home/tmp/" basename($k->srcurl);

        if (!
download($k->srcurl,$localfile)) {
            echo 
"download failed " __LINE__ "\n";
            return 
false;
        }
        
        
chdir("$home/tmp");
        
        echo 
"Decompressing archive...";
        echo 
"calling popen()...";
        
$ph popen("tar vxjf $localfile","r");
        echo 
"done.\n";
        echo 
"calling fgets()...";
        
$resultFolder trim(fgets($ph,64));
        echo 
"done.\n";
        
print_r($ph);
        echo 
"calling pclose()...";
        
pclose($ph);
        echo 
"done.\n";
        
        
        echo 
"(errors above can be ignored)\n";
        echo 
"Archive's primary directory: $resultFolder\n";
        
        echo 
"Decompressing archive...";
        
//`tar xjf $localfile`;
        
echo "done.\n";
        
        echo 
"Cleaning up...";
        `
rm -rf $home/$k->name`;
        
rename("$home/tmp/$resultFolder","$home/$k->name");
        
//unlink($localfile);
        
echo "done.\n";
    }
    
    for (
$i=0$i<count($kernel); $i++) {
        
$k $kernel[$i];
        
        
$localv getLocalVersion($k->name);
        
        if (empty(
$k->parent)) {
            
//print_r($k);
            
if (!empty($k->version)) {
                if (
$localv != $k->version) {
                    echo 
"Updating \"$k->name\" source: $localv to $k->version...\n";
                    
getSource($k);
                } else {
                    echo 
"Source \"$k->name\" is up-to-date ($localv).\n";
                }
            } else {
                echo 
"No remote version found for $k->name!\n";
            }
        }
    }
?>

Tobias McNulty

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help