Revision: 2640
          http://gar.svn.sourceforge.net/gar/?rev=2640&view=rev
Author:   wbonnet
Date:     2008-12-17 23:40:05 +0000 (Wed, 17 Dec 2008)

Log Message:
-----------
Port to upstream_watch v2 SF download page support

Modified Paths:
--------------
    csw/mgar/gar/v1/bin/upstream_watch
    csw/mgar/gar/v2/bin/upstream_watch

Modified: csw/mgar/gar/v1/bin/upstream_watch
===================================================================
--- csw/mgar/gar/v1/bin/upstream_watch  2008-12-17 23:39:14 UTC (rev 2639)
+++ csw/mgar/gar/v1/bin/upstream_watch  2008-12-17 23:40:05 UTC (rev 2640)
@@ -186,7 +186,7 @@
                        $file_list = get_file_list_wget_sourceforge ($url);
                } else {        
                        $file_list = get_file_list_lftp ($url);
-}
+       }
 
                foreach my $file (@{$file_list}) {                      
                        if ($file =~ /^$file_pattern$/) {

Modified: csw/mgar/gar/v2/bin/upstream_watch
===================================================================
--- csw/mgar/gar/v2/bin/upstream_watch  2008-12-17 23:39:14 UTC (rev 2639)
+++ csw/mgar/gar/v2/bin/upstream_watch  2008-12-17 23:40:05 UTC (rev 2640)
@@ -108,11 +108,64 @@
        return \...@file_list;
 }
 
+sub get_file_list_wget_sourceforge
+{
+       my $url = shift;
+       my @file_list;
+
+       my $http_proxy_cmd = "";
+       my $wget_command ="wget";
+       my $filename = "";
+
+       # lftp doesn't seem to obey the _PROXY env variable
+       # we must manually set them
+       $http_proxy_cmd = "set http:proxy $ENV{HTTP_PROXY};" if exists 
$ENV{HTTP_PROXY};
+       $http_proxy_cmd = "set http:proxy $ENV{http_proxy};" if exists 
$ENV{http_proxy};
+       $wget_command   = "$http_proxy_cmd ; wget --proxy=on" if exists 
$ENV{http_proxy_cmd};
+
+       open (my $FH, "$wget_command -qO- $url 2>/dev/null | grep class | grep 
selected | grep li | grep Download | ");
+
+       if (my $line = <$FH>) {
+               my @cols = split (/"/, $line);
+               $filename = $cols[3];
+               chomp ($filename);
+       }
+       else {
+               close ($FH);
+               return \...@file_list;
+       }
+
+       close ($FH);
+
+       $url = "http://downloads.sourceforge.net"; . $filename;
+       open ($FH, "$wget_command -qO- $url 2>/dev/null | grep $filename | grep 
package_id= | grep release_id | ");
+
+       if (my $line = <$FH>) {
+               my @cols = split (/>/, $line);
+               my $filename = $cols[2];
+               chomp ($filename);
+               @cols = split (/</, $filename);
+               $filename = $cols[0];
+               chomp ($filename);
+               push (@file_list, $filename);
+       }
+       else {
+               close ($FH);
+               return \...@file_list;
+       }
+
+       close ($FH);
+
+       return \...@file_list;
+}
+
 my $help;
 my @urls;
+my $use_sf = 0;
 
 Getopt::Long::Configure ("no_ignore_case");  
 GetOptions("h|help" => \$help,
+          "s|use_sf=i" => \$use_sf,
           "u|url=s@" => \...@urls);
 
 if ($help) {
@@ -126,9 +179,14 @@
 
        my $newest_version = 0;
        my $newest_file = "";
+       my $file_list ;
 
        foreach my $url (@urls) {
-               my $file_list = get_file_list_lftp ($url);
+               if ($use_sf != 0) {
+                       $file_list = get_file_list_wget_sourceforge ($url);
+               } else {        
+                       $file_list = get_file_list_lftp ($url);
+       }
 
                foreach my $file (@{$file_list}) {                      
                        if ($file =~ /^$file_pattern$/) {


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.
_______________________________________________
devel mailing list
[email protected]
https://lists.opencsw.org/mailman/listinfo/devel

Reply via email to