Just learned about CPAN::Mini on the Perl Advent Calendar
<URL:http://www.perladvent.org/>. What a _spiffy_ idea! Just sorta
blows me away, I never thought of taking that particular slice.

But once I had the latest versions of everything in CPAN sitting
nice and happy on my hard disk, I figured I had to index it, of
course. Hence the attached script. I use rc(1) for my shell
scripting and swish++ for my indexer, but the idea's simple enough
to rewrite in whatever language appeals.

-Bennett
#!/bin/rc

src=$home/archive/minicpan

tmp=/var/tmp/^`{basename $0}^.$pid
fn sigexit { rm -rf $tmp }

mkdir $tmp

for (f in `{find $src/authors/id -type f ! -name 'CHECKSUMS'}) {
    mkdir $tmp/_unpack
    switch($f) {
        case *.tar.gz
            modname=`{basename $f .tar.gz}
            @{cd $tmp/_unpack&&tar xzf $f}
        case *.tgz
            modname=`{basename $f .tgz}
            @{cd $tmp/_unpack&&tar xzf $f}
        case *.zip
            modname=`{basename $f .zip}
            @{cd $tmp/_unpack&&unzip $f}
        case *.pm.gz
            modname=`{basename $f .pm.gz}
            @cd $tmp/_unpack&&gzip -d <$f >`{basename $src .gz}
    }
    {
        find $tmp/_unpack -name README | xargs cat
        find $tmp/_unpack -type f|xargs grep -l '^=head1'|xargs -l pod2text
    } >$tmp/$modname
    rm -rf $tmp/_unpack
}

@{cd $tmp && ls|index -W100000 -I -}
mv $tmp/swish++.index $src/

Attachment: pgpP8b0YUhOB5.pgp
Description: PGP signature

Reply via email to