#!/usr/bin/perl
$|++;
use strict;
use LWP::Simple qw/get $ua/;
use Net::SSLeay;
my $url = 'https://readonly:readonly@hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/';
my $r = get($url);
my $package_list_html = $r;
my %package_urls = reverse $package_list_html =~ m|
(.*)/|g;
#print keys(%package_urls),"\n";
#print "\n",'*' x50,"\n\n";
#exit;
#my %package_urls = {'affy'=> 'affy', 'affydata' => 'affydata'};
#print keys(%package_urls),"\n";
$_ = $url . $_ for values %package_urls;
printf "/* Found %d packages */\n", scalar keys %package_urls;
my %package_dependencies;
while( my($package,$url) = each %package_urls ){
my $description = get( $url . 'DESCRIPTION' );
my @deps = split /, */, ($description =~ /Depends: (.*)/)[0];
s/\(.+// for @deps;
s/\s//g for @deps;
@deps = grep { $_ ne "R" } @deps;
$package_dependencies{ $package } = [ @deps ];
print "Depends: \n";
printf qq{\t"%s" -> "%s";\n}, $package,$_ for( @deps );
# my @sugs = split /, */, ($description =~ /Suggests: (.*)\w+: /s)[0];
if ( $description =~ /Suggests: (.*\w+:).*/s ) {
my $tmp=$1;
# print "**** ", $tmp,"\n";
s/\w*:.*//sg for $tmp ;
# print "**** ", $tmp,"\n";
my @sugs = split /, */, $tmp;
s/\(.+// for @sugs;
s/\s//g for @sugs;
@sugs = grep { $_ ne "R" } @sugs;
$package_dependencies{ $package } = [ @sugs ];
print "Suggests: \n";
printf qq{\t"%s" -> "%s";\n}, $package,$_ for( @sugs );
}
}