r39610 - in /scripts/cpan-links: ./ convert generate-tree.pl update-link-tree
ryan52-guest at users.alioth.debian.org
ryan52-guest at users.alioth.debian.org
Thu Jul 9 22:42:57 UTC 2009
Author: ryan52-guest
Date: Thu Jul 9 22:42:52 2009
New Revision: 39610
URL: http://svn.debian.org/wsvn/?sc=1&rev=39610
Log:
add the scripts for the cpan link thing
Added:
scripts/cpan-links/
scripts/cpan-links/convert (with props)
scripts/cpan-links/generate-tree.pl (with props)
scripts/cpan-links/update-link-tree (with props)
Added: scripts/cpan-links/convert
URL: http://svn.debian.org/wsvn/scripts/cpan-links/convert?rev=39610&op=file
==============================================================================
--- scripts/cpan-links/convert (added)
+++ scripts/cpan-links/convert Thu Jul 9 22:42:52 2009
@@ -1,0 +1,4 @@
+#!/bin/sh
+
+sed -ri 's,http://search.cpan.org/dist/([^/]*)/,http://xyzzy.ryan52.info/~ryan52/cpan-link-tree/\1.html,g' debian/watch
+
Propchange: scripts/cpan-links/convert
------------------------------------------------------------------------------
svn:executable = *
Added: scripts/cpan-links/generate-tree.pl
URL: http://svn.debian.org/wsvn/scripts/cpan-links/generate-tree.pl?rev=39610&op=file
==============================================================================
--- scripts/cpan-links/generate-tree.pl (added)
+++ scripts/cpan-links/generate-tree.pl Thu Jul 9 22:42:52 2009
@@ -1,0 +1,65 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use File::Basename;
+mkdir("cpan-link-tree");
+use File::Listing qw(parse_dir);
+my $base = "http://cpan.hexten.net";
+my $backbase = "http://backpan.perl.org/";
+my @files;
+print "Loading ls-lR.gz\n";
+open(LISTING, "zcat ls-lR.gz|");
+ at files = parse_dir(\*LISTING, '+0000');
+close LISTING;
+print "Cleaning list\n";
+ at files = map {@{$_}[0]} @{[grep {@{$_}[1] eq "f"} @files]};
+ at files = grep {/^\.\/authors\/id\/.*\.(?:tar\.gz|tgz)$/} @files;
+ at files = map {$_ =~ s/^\./$base/; $_;} @files;
+print "Generating hash\n";
+my %hash = ();
+my %basenames = ();
+foreach (@files) {
+ my $dist = basename($_);
+ next if($basenames{$dist});
+ $basenames{$dist} = 1;
+ $dist =~ s/-[^-]*\.(?:tar\.gz|tgz)$//;
+ push @{$hash{$dist}}, $_;
+}
+print "Loading backpan.txt.gz\n";
+open(LISTING, "zcat backpan.txt.gz|");
+ at files = <LISTING>;
+close LISTING;
+print "Cleaning list\n";
+ at files = map {$_ =~ s/^([^ ]*) .*/$1/; chomp; $_;} @files;
+ at files = grep {/^authors\/id\/.*\.(?:tar\.gz|tgz)$/} @files;
+ at files = map {$_ =~ s/^/$backbase/; $_;} @files;
+print "Adding backpan data to hash\n";
+foreach (@files) {
+ my $dist = basename($_);
+ next if($basenames{$dist});
+ $basenames{$dist} = 1;
+ $dist =~ s/-[^-]*\.(?:tar\.gz|tgz)$//;
+ push @{$hash{$dist}}, $_;
+}
+print "Writing to tree\n";
+foreach(keys %hash) {
+ my $str = "";
+ foreach(@{$hash{$_}}) {
+ $str .= "<a href=\"" . $_ . "\">" . basename($_) . "</a><br />";
+ }
+ my $f = "cpan-link-tree/" . $_ . ".html";
+ my $current = "";
+ if(-f $f) {
+ open F, $f;
+ $current = join '', <F>;
+ close F;
+ }
+ # so that it doesn't re rsync all 80ish megs of data ... my VPS has bandwith limits.
+ if($str ne $current) {
+ print "Updating: " . basename($f) . "\n";
+ open F, ">", $f;
+ print F $str;
+ close F;
+ }
+}
Propchange: scripts/cpan-links/generate-tree.pl
------------------------------------------------------------------------------
svn:executable = *
Added: scripts/cpan-links/update-link-tree
URL: http://svn.debian.org/wsvn/scripts/cpan-links/update-link-tree?rev=39610&op=file
==============================================================================
--- scripts/cpan-links/update-link-tree (added)
+++ scripts/cpan-links/update-link-tree Thu Jul 9 22:42:52 2009
@@ -1,0 +1,10 @@
+#!/bin/sh
+
+set -e
+
+cd /home/ryan52/
+wget http://cpan.hexten.net/ls-lR.gz -O ls-lR.gz
+wget http://www.astray.com/tmp/backpan.txt.gz -O backpan.txt.gz
+./generate-tree.pl
+rsync -azv /home/ryan52/cpan-link-tree/ /server/sync/public_html/cpan-link-tree/
+/srv/sync
Propchange: scripts/cpan-links/update-link-tree
------------------------------------------------------------------------------
svn:executable = *
More information about the Pkg-perl-cvs-commits
mailing list