summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/feed-browser/update.php208
1 files changed, 115 insertions, 93 deletions
diff --git a/contrib/feed-browser/update.php b/contrib/feed-browser/update.php
index 07f4f15bc9..1b5e7c34fc 100644
--- a/contrib/feed-browser/update.php
+++ b/contrib/feed-browser/update.php
@@ -35,6 +35,7 @@
Description: IPv4 link-local address allocator
*/
+error_reporting(E_ALL);
$start = time();
$p_count = 0;
@@ -45,82 +46,96 @@ $feeds = db_query("SELECT f_name, f_uri FROM feeds");
foreach($feeds as $feed)
{
+ print("Updating {$feed['f_name']}: {$feed['f_uri']}\n");
+ db_query_n("DELETE FROM packages WHERE p_feed = '{$feed['f_name']}'");
+
+ $count = 0;
+
+ $packagesgz_h = fopen("compress.zlib://{$feed['f_uri']}/Packages.gz", "r");
+
+ if ($packagesgz_h)
+ {
+ $package_info = array(
+ 'name'=>'', 'version'=>'', 'arch'=>'', 'depends'=>'',
+ 'maintainer'=>'', 'homepage'=>'', 'section'=>'', 'replaces'=>'',
+ 'provides'=>'', 'recommends'=>'', 'conflicts'=>'', 'size'=>'',
+ 'md5sum'=>'', 'source'=>'', 'feed'=>'', 'file'=>'', 'desc'=>''
+ );
+
+ while (!feof($packagesgz_h))
+ {
+ $buffer = fscanf($packagesgz_h, "%[^:]: %[ -~]");
+ list ($field, $value) = $buffer;
+
+ if($field == 'Package' && $count > 0)
+ {
+ insert_ipkgs($package_info);
+
+ $package_info = array(
+ 'name'=>'', 'version'=>'', 'arch'=>'', 'depends'=>'',
+ 'maintainer'=>'', 'homepage'=>'', 'section'=>'', 'replaces'=>'',
+ 'provides'=>'', 'recommends'=>'', 'conflicts'=>'', 'size'=>'',
+ 'md5sum'=>'', 'source'=>'', 'feed'=>'', 'file'=>'', 'desc'=>''
+ );
+ }
+
+ switch($field)
+ {
+ case 'Package':
+ $package_info['name'] = $value;
+ $count++;
+ break;
+ case 'Version':
+ $package_info['version'] = $value;
+ break;
+ case 'Depends':
+ $package_info['depends'] = $value;
+ break;
+ case 'Provides':
+ $package_info['provides'] = $value;
+ break;
+ case 'Recommends':
+ $package_info['recommends'] = $value;
+ break;
+ case 'Replaces':
+ $package_info['replaces'] = $value;
+ break;
+ case 'Conflicts':
+ $package_info['conflicts'] = $value;
+ break;
+ case 'Section':
+ $package_info['section'] = $value;
+ break;
+ case 'Architecture':
+ $package_info['arch'] = $value;
+ break;
+ case 'Maintainer':
+ $package_info['maintainer'] = str_replace("'","\"", $value);
+ break;
+ case 'MD5sum':
+ $package_info['md5sum'] = $value;
+ break;
+ case 'Size':
+ $package_info['size'] = $value;
+ break;
+ case 'Filename':
+ $package_info['file'] = $value;
+ break;
+ case 'Source':
+ $package_info['source'] = $value;
+ break;
+ case 'Description':
+ $package_info['desc'] = str_replace("'","\"", $value);
+ break;
+ }
- print("Updating $feed[f_name]: $feed[f_uri]\n");
- db_query_n("DELETE FROM packages WHERE p_feed = '$feed[f_name]'");
-
- $count = 0;
-
- $packagesgz_h = fopen("compress.zlib://$feed[f_uri]/Packages.gz", "r");
- if ($packagesgz_h) {
- while (!feof($packagesgz_h)) {
- $buffer = fscanf($packagesgz_h, "%[^:]: %[ -~]");
- list ($field, $value) = $buffer;
-
-
- if($field == 'Package' && $count > 0)
- {
- insert_ipkgs ($package, $version, $depends, $section, $arch, $maintainer, $md5sum, $size, $file, $source, $desc,$feed[f_name], $conflicts, $provides, $replaces, $recommends);
- unset($package, $version, $depends, $section, $arch, $maintainer, $md5sum, $size, $file, $source, $desc, $conflicts, $provides, $replaces, $recommends);
- }
-
-
- switch($field)
- {
- case 'Package':
- $package = $value;
- $count++;
- break;
- case 'Version':
- $version = $value;
- break;
- case 'Depends':
- $depends = $value;
- break;
- case 'Provides':
- $provides = $value;
- break;
- case 'Recommends':
- $recommends = $value;
- break;
- case 'Replaces':
- $replaces = $value;
- break;
- case 'Conflicts':
- $conflicts = $value;
- break;
- case 'Section':
- $section = $value;
- break;
- case 'Architecture':
- $arch = $value;
- break;
- case 'Maintainer':
- $maintainer = str_replace("'","\"", $value);
- break;
- case 'MD5sum':
- $md5sum = $value;
- break;
- case 'Size':
- $size = $value;
- break;
- case 'Filename':
- $file = $value;
- break;
- case 'Source':
- $source = $value;
- break;
- case 'Description':
- $desc = str_replace("'","\"", $value);
- break;
- }
-
- }
- insert_ipkgs ($package, $version, $depends, $section, $arch, $maintainer, $md5sum, $size, $file, $source, $desc,$feed[f_name], $conflicts, $provides, $replaces, $recommends);
}
-$p_count = $count + $p_count;
-gzclose($packagesgz_h);
+ insert_ipkgs($package_info);
+ }
+
+ $p_count = $count + $p_count;
+ gzclose($packagesgz_h);
}
//close the db
@@ -141,41 +156,48 @@ $seconds = $difference;
print "Added $p_count packages in $days days, $hours hours, $minutes minutes and $seconds seconds \n";
-function insert_ipkgs ($package, $version, $depends, $section, $arch, $maintainer, $md5sum, $size, $file, $source, $desc, $feed, $conflicts, $provides, $replaces, $recommends)
+function insert_ipkgs(&$package_info)
{
- db_query_n(
- "INSERT INTO packages (p_name, p_version, p_depends, p_arch, p_maintainer, p_section, p_size, p_md5, p_source, p_desc, p_feed, p_file, p_conflicts, p_provides, p_replaces, p_recommends)
- VALUES ('$package', '$version', '$depends', '$arch', '$maintainer', '$section', '$size', '$md5sum', '$source', '$desc', '$feed', '$file', '$conflicts', '$provides', '$replaces', '$recommends')
- ");
+ db_query_n("INSERT INTO packages VALUES (
+ '{$package_info['name']}', '{$package_info['version']}',
+ '{$package_info['arch']}', '{$package_info['depends']}',
+ '{$package_info['maintainer']}', '{$package_info['homepage']}',
+ '{$package_info['section']}', '{$package_info['replaces']}',
+ '{$package_info['provides']}', '{$package_info['recommends']}',
+ '{$package_info['conflicts']}', '{$package_info['size']}',
+ '{$package_info['md5sum']}', '{$package_info['source']}',
+ '{$package_info['feed']}', '{$package_info['file']}',
+ '{$package_info['desc']}'
+ )");
}
function db_query($query)
{
- $result = FALSE;
+ $result = FALSE;
- if($db_h = sqlite_open(DB_FILENAME))
- {
- $query_h = sqlite_query ($db_h, $query);
- $result = sqlite_fetch_all ($query_h, SQLITE_ASSOC);
- sqlite_close($db_h);
- }
+ if($db_h = sqlite_open(DB_FILENAME))
+ {
+ $query_h = sqlite_query ($db_h, $query);
+ $result = sqlite_fetch_all ($query_h, SQLITE_ASSOC);
+ sqlite_close($db_h);
+ }
- return $result;
+ return $result;
}
function db_query_n($query)
{
- $result = FALSE;
+ $result = FALSE;
- if($db_h = sqlite_open(DB_FILENAME))
- {
- $query_h = sqlite_query ($db_h, $query);
- sqlite_close($db_h);
- }
+ if($db_h = sqlite_open(DB_FILENAME))
+ {
+ $query_h = sqlite_query ($db_h, $query);
+ sqlite_close($db_h);
+ }
- return $result;
+ return $result;
}