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