[cvs] / vanilla / kv.php  

cvs: vanilla/kv.php


1 : tmcnulty 1.1 #!/usr/bin/php4 -q
2 :     <?php
3 :     header("Content-Type: text/plain");
4 :    
5 :     echo "Getting list of kernel versions...";
6 :     include("kernel_version.inc");
7 :     echo "done.\n";
8 :    
9 :     $home="/var/rsync/kernel";
10 :    
11 :     function checkDir($dir) {
12 :     if (!file_exists($dir))
13 :     mkdir($dir,0755);
14 :     }
15 :    
16 :     function download($remote,$local) {
17 :     $result = true;
18 :    
19 :     /*if (!$rh = fopen($remote,"r")) {
20 :     echo "fopen failed " . __LINE__ . "\n";
21 :     return false;
22 :     }
23 :    
24 :     if (!$lh = fopen($local,"w")) {
25 :     echo "fopen failed " . __LINE__ . "\n";
26 :     return false;
27 :     }
28 :    
29 :     $buf = "";
30 :     while (!feof($rh)) {
31 :     $buf = fread($rh, 4096);
32 :     fwrite($lh,$buf);
33 :     }
34 :    
35 :     fclose($rh);
36 :     fclose($lh);*/
37 :    
38 :     echo "Downloading \"$remote\"...\n";
39 :    
40 :     if (file_exists($local))
41 :     $result = system("wget -q -c -O $local $remote");
42 :     else
43 :     $result = system("wget -q -O $local $remote");
44 :    
45 :     $result = !$result;
46 :     return $result;
47 :     }
48 :    
49 :     function getLocalVersion($name) {
50 :     global $home;
51 :     if (file_exists("$home/$name/Makefile"))
52 :     $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"`);
53 :     else
54 :     $result = "(none available)";
55 :    
56 :     return $result;
57 :     }
58 :    
59 :     function getSource($k) {
60 :     global $home;
61 :    
62 :     checkDir("$home/tmp");
63 :    
64 :     $localfile = "$home/tmp/" . basename($k->srcurl);
65 :    
66 :     if (!download($k->srcurl,$localfile)) {
67 :     echo "download failed " . __LINE__ . "\n";
68 :     return false;
69 :     }
70 :    
71 :     chdir("$home/tmp");
72 :    
73 :     echo "Decompressing archive...";
74 :     echo "calling popen()...";
75 :     $ph = popen("tar vxjf $localfile","r");
76 :     echo "done.\n";
77 :     echo "calling fgets()...";
78 :     $resultFolder = trim(fgets($ph,64));
79 :     echo "done.\n";
80 :     print_r($ph);
81 :     echo "calling pclose()...";
82 :     pclose($ph);
83 :     echo "done.\n";
84 :    
85 :    
86 :     echo "(errors above can be ignored)\n";
87 :     echo "Archive's primary directory: $resultFolder\n";
88 :    
89 :     echo "Decompressing archive...";
90 :     //`tar xjf $localfile`;
91 :     echo "done.\n";
92 :    
93 :     echo "Cleaning up...";
94 :     `rm -rf $home/$k->name`;
95 :     rename("$home/tmp/$resultFolder","$home/$k->name");
96 :     //unlink($localfile);
97 :     echo "done.\n";
98 :     }
99 :    
100 :     for ($i=0; $i<count($kernel); $i++) {
101 :     $k = $kernel[$i];
102 :    
103 :     $localv = getLocalVersion($k->name);
104 :    
105 :     if (empty($k->parent)) {
106 :     //print_r($k);
107 :     if (!empty($k->version)) {
108 :     if ($localv != $k->version) {
109 :     echo "Updating \"$k->name\" source: $localv to $k->version...\n";
110 :     getSource($k);
111 :     } else {
112 :     echo "Source \"$k->name\" is up-to-date ($localv).\n";
113 :     }
114 :     } else {
115 :     echo "No remote version found for $k->name!\n";
116 :     }
117 :     }
118 :     }
119 :     ?>

Tobias McNulty

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help