<?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 |
ViewCVS and CVS Help |