--- cvs-head/script/cpanwait 2002/05/03 16:16:10 85 +++ cvs-head/script/cpanwait 2004/05/24 13:41:28 86 @@ -1,4 +1,4 @@ -#!/usr/local/perl5.005_56.Mar06/bin/perl -w +#!/usr/bin/perl -w ######################### -*- Mode: Perl -*- ######################### ## ## $Basename: cpanwait $ @@ -15,10 +15,6 @@ ## ###################################################################### -eval 'exec perl -S $0 "$@"' - if 0; - - use strict; use File::Path; @@ -28,11 +24,17 @@ use File::Basename; use IO::File; +use lib '/data/wait/lib'; + require WAIT::Config; require WAIT::Database; require WAIT::Parse::Pod; require WAIT::Document::Tar; +sub fname($); + +# maximum number of archives to index (set to -1 for unlimited) +my $max = -1; my %OPT = (database => 'DB', dir => $WAIT::Config->{WAIT_home} || '/tmp', @@ -40,13 +42,14 @@ clean => 0, remove => [], force => 0, - cpan => '/usr/src/perl/CPAN/sources', +# cpan => '/usr/src/perl/CPAN/sources', + cpan => '/rest/cpan/CPAN/', trust_mtime => 1, match => 'authors/id/', test => 0, # cpan => 'ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN', - cpan => 'ftp://ftp.uni-hamburg.de:/pub/soft/lang/perl/CPAN', - keep => '/app/unido-i06/src/share/lang/perl/96a/CPAN/sources', +# cpan => 'ftp://ftp.uni-hamburg.de:/pub/soft/lang/perl/CPAN', + keep => '/tmp/CPAN/', ); GetOptions(\%OPT, @@ -64,8 +67,11 @@ 'remove=s@', 'force!', # force indexing even if seen 'trust_mtime!', # use mtime instead of version number + 'max=i', + 'reorg!', ) || die "Usage: ...\n"; +$max ||= $OPT{max}; clean_database( database => $OPT{database}, @@ -228,7 +234,7 @@ my %tar; tie (%tar, 'WAIT::Document::Tar', - sub { $_[0] =~ /\.(pm|pod|PL)$/ or $_[0] =~ /readme/i}, + sub { $_[0] =~ /\.(pm|pod|PL)$/i or $_[0] =~ /readme/i}, #sub { $_[0] !~ m:/$: }, $TAR) or warn "Could not tie '$TAR'\n"; @@ -344,6 +350,13 @@ print "\t);\n"; } +if ($OPT{reorg}) { + my $now = time; + warn "Starting reorg\n"; + $tb->set(top=>1); + warn sprintf "Finished reorg %d seconds\n", time - $now; +} + # we are done $db->close(); exit; @@ -382,6 +395,8 @@ return; } } + } else { + $TAR = $ARCHIVE{$tar}; } $TAR; } @@ -425,6 +440,12 @@ } my $record = $layout->split($parm{'text'}); + + if (! $record) { + print "empty pod: $did\n"; + return; + } + $record->{size} = length($parm{'text'}); my $headline = $record->{name} || $did; @@ -504,6 +525,10 @@ my $mtime = shift; # called by parse_file_ls(); return unless /^(.*)\.tar(\.gz|\.Z)$/; + + return if (! $max); + $max--; + my ($archive, $version) = version($1); unless (defined $version) { @@ -630,11 +655,11 @@ =head1 NAME -cpan - generate an WAIT index for CPAN +cpanwait - generate an WAIT index for CPAN =head1 SYNOPSIS -B +B [B<-clean>] [B<-noclean>] [B<-cpan> I] [B<-database> I]