diff options
Diffstat (limited to 'lib/CPAN')
-rw-r--r-- | lib/CPAN/Admin.pm | 221 | ||||
-rw-r--r-- | lib/CPAN/SIGNATURE | 29 | ||||
-rw-r--r-- | lib/CPAN/bin/cpan | 4 | ||||
-rw-r--r-- | lib/CPAN/t/version.t | 12 |
4 files changed, 19 insertions, 247 deletions
diff --git a/lib/CPAN/Admin.pm b/lib/CPAN/Admin.pm deleted file mode 100644 index 5c3068e5ed..0000000000 --- a/lib/CPAN/Admin.pm +++ /dev/null @@ -1,221 +0,0 @@ -package CPAN::Admin; -use base CPAN; -use CPAN; # old base.pm did not load CPAN on previous line -use strict; -use vars qw(@EXPORT $VERSION); -use constant PAUSE_IP => "pause.perl.org"; - -@EXPORT = qw(shell); -$VERSION = sprintf "%.2f", substr(q$Rev: 231 $,4)/100; -push @CPAN::Complete::COMMANDS, qw(register modsearch); -if ($CPAN::META->has_inst("Term::ANSIColor")) { - $CPAN::Shell::COLOR_REGISTERED = 1; -} -sub shell { - CPAN::shell($_[0]||"admin's cpan> ",$_[1]); -} - -sub CPAN::Shell::register { - my($self,$mod,@rest) = @_; - unless ($mod){ - print "register called without argument\n"; - return; - } - if ($CPAN::META->has_inst("URI::Escape")) { - require URI::Escape; - } else { - print "register requires URI::Escape installed, otherwise it cannot work\n"; - return; - } - print "Got request for mod[$mod]\n"; - if (@rest) { - my $modline = join " ", $mod, @rest; - print "Sending to PAUSE [$modline]\n"; - my $emodline = URI::Escape::uri_escape($modline, '^\w '); - $emodline =~ s/ /+/g; - my $url = - sprintf("https://%s/pause/authenquery?pause99_add_mod_modid=". - "%s;SUBMIT_pause99_add_mod_hint=hint", - PAUSE_IP, - $emodline, - ); - print "url[$url]\n\n"; - print ">>>>Trying to open a netscape window<<<<\n"; - sleep 1; - system("netscape","-remote","openURL($url)"); - return; - } - my $m = CPAN::Shell->expand("Module",$mod); - unless (ref $m) { - print "Could not determine the object for $mod\n"; - return; - } - my $id = $m->id; - print "Found module id[$id] in database\n"; - - if (exists $m->{RO} && $m->{RO}{chapterid}) { - print "$id is already registered\n"; - return; - } - - my(@namespace) = split /::/, $id; - my $rootns = $namespace[0]; - - # Tk, XML and Apache need special treatment - if ($rootns=~/^(Bundle)\b/){ - print "Bundles are not yet ready for registering\n"; - return; - } - - # make a good suggestion for the chapter - my(@simile) = CPAN::Shell->expand("Module","/^$rootns(:|\$)/"); - print "Found within this namespace ", join(", ", map { $_->id } @simile), "\n"; - my(%seench); - for my $ch (map { exists $_->{RO} ? $_->{RO}{chapterid} : ""} @simile) { - next unless $ch; - $seench{$ch}=undef; - } - my(@seench) = sort grep {length($_)} keys %seench; - my $reco_ch = ""; - if (@seench>1) { - print "Found rootnamespace[$rootns] in the chapters [", join(", ", @seench), "]\n"; - $reco_ch = $seench[0]; - print "Picking $reco_ch\n"; - } elsif (@seench==1) { - print "Found rootnamespace[$rootns] in the chapter[$seench[0]]\n"; - $reco_ch = $seench[0]; - } else { - print "The new rootnamespace[$rootns] needs to be introduced. Oh well.\n"; - } - - # Look closer at the dist - my $d = CPAN::Shell->expand("Distribution", $m->cpan_file); - printf "Module comes with dist[%s]\n", $d->id; - for my $contm ($d->containsmods) { - if ($CPAN::META->exists("CPAN::Module",$contm)) { - my $contm_obj = CPAN::Shell->expand("Module",$contm) or next; - my $is_reg = exists $contm_obj->{RO} && $contm_obj->{RO}{description}; - printf(" in same dist: %s%s\n", - $contm, - $is_reg ? " already in modulelist" : "", - ); - } - } - - # get it so that m is better and we can inspect for XS - CPAN::Shell->get($id); - CPAN::Shell->m($id); - CPAN::Shell->d($d->id); - - my $has_xs = 0; - { - my($mani,@mani); - local $/ = "\n"; - open $mani, "$d->{build_dir}/MANIFEST" and @mani = <$mani>; - my @xs = grep /\.xs\b/, @mani; - if (@xs) { - print "Found XS files: @xs"; - $has_xs=1; - } - } - my $emodid = URI::Escape::uri_escape($id, '\W'); - my $ech = $reco_ch; - $ech =~ s/ /+/g; - my $description = $m->{MANPAGE} || ""; - $description =~ s/[A-Z]<//; # POD markup (and maybe more) - $description =~ s/^\s+//; # leading spaces - $description =~ s/>//; # POD - $description =~ s/^\Q$id\E//; # usually this line starts with the modid - $description =~ s/^[ \-]+//; # leading spaces and dashes - substr($description,44) = "" if length($description)>44; - $description = ucfirst($description); - my $edescription = URI::Escape::uri_escape($description, '^\w '); - $edescription =~ s/ /+/g; - my $url = - sprintf("https://%s/pause/authenquery?pause99_add_mod_modid=". - "%s;pause99_add_mod_chapterid=%s;pause99_add_mod_statd=%s;". - "pause99_add_mod_stats=%s;pause99_add_mod_statl=%s;". - "pause99_add_mod_stati=%s;pause99_add_mod_description=%s;". - "pause99_add_mod_userid=%s;SUBMIT_pause99_add_mod_preview=preview", - PAUSE_IP, - $emodid, - $ech, - "R", - "d", - $has_xs ? "c" : "p", - "O", - $edescription, - $m->{RO}{CPAN_USERID}, - ); - print "$url\n\n"; - print ">>>>Trying to open a netscape window<<<<\n"; - system("netscape","-remote","openURL($url)"); -} - -sub CPAN::Shell::modsearch { - my($self,@line) = @_; - unless (@line){ - print "modsearch called without argument\n"; - return; - } - my $request = join " ", @line; - print "Got request[$request]\n"; - my $erequest = URI::Escape::uri_escape($request, '^\w '); - $erequest =~ s/ /+/g; - my $url = - sprintf("http://www.xray.mpe.mpg.de/cgi-bin/w3glimpse/modules?query=%s". - "&errors=0&case=on&maxfiles=100&maxlines=30", - $erequest, - ); - print "$url\n\n"; - print ">>>>Trying to open a netscape window<<<<\n"; - system("netscape","-remote","openURL('$url')"); -} - -1; - -__END__ - -=head1 NAME - -CPAN::Admin - A CPAN Shell for CPAN admins - -=head1 SYNOPSIS - -perl -MCPAN::Admin -e shell - -=head1 DESCRIPTION - -CPAN::Admin is a subclass of CPAN that adds the commands C<register> -and C<modsearch> to the CPAN shell. - -C<register> calls C<get> on the named module, assembles a couple of -informations (description, language), and calls Netscape with the --remote argument so that a form is filled with all the assembled -informations and the registration can be performed with a single -click. If the command line has more than one argument, register does -not run a C<get>, instead it interprets the rest of the line as DSLI -status, description, and userid and sends them to netscape such that -the form is again mostly filled and can be edited or confirmed with a -single click. CPAN::Admin never performs the submission click for you, -it is only intended to fill in the form on PAUSE and leave the -confirmation to you. - -C<modsearch> simply passes the arguments to the search engine for the -modules@perl.org mailing list at http://www.xray.mpe.mpg.de where all -registration requests are stored. It does so in the same way as -register, namely with the C<netscape -remote> command. - -An experimental feature has also been added, namely to color already -registered modules in listings. If you have Term::ANSIColor installed, -the u, r, and m commands will show already registered modules in -green. - -=head1 PREREQISITES - -URI::Escape, netscape browser available in the path, netscape must -understand the -remote switch (as far as I know, this is only -available on UNIX); coloring of registered modules is only available -if Term::ANSIColor is installed. - -=cut diff --git a/lib/CPAN/SIGNATURE b/lib/CPAN/SIGNATURE index fbd6f4ab28..36906144da 100644 --- a/lib/CPAN/SIGNATURE +++ b/lib/CPAN/SIGNATURE @@ -14,38 +14,37 @@ not run its Makefile.PL or Build.PL. -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -SHA1 dffb8c2be808260012cfb2b880133a115ef4b363 ChangeLog +SHA1 a54a2d61e3ab59c7e24a24b9995132b221038f39 ChangeLog SHA1 9b97524a7a91c815e46b19302a33829d3c26bbbf ChangeLog.old SHA1 a029ffa2f2252bb8914eb658666244710994d256 Changes.old -SHA1 61a9837044c45b47246f41424c101ec5b739cabf MANIFEST -SHA1 0a72807a1326b4be93a15f6ed0e5e03ee931859e MANIFEST.SKIP -SHA1 4fb4a21dcc19b02a37f33f533a8e399fd2d973d9 META.yml -SHA1 c2c1d8faff850ce133841076e7c815e6e36b1351 Makefile.PL +SHA1 86ca1e7f1afbf3f9829eadc046d52774fa604ca8 MANIFEST +SHA1 c4090d00f577a0c5b562899afb75abc626805eb6 MANIFEST.SKIP +SHA1 929940208ad7f6acb53fb4d9e717af5f32b16a57 META.yml +SHA1 f9c7519871a5e7adc40d1591dc75f6fa2e16d82a Makefile.PL SHA1 37e858c51409a297ef5d3fb35dc57cd3b57f9a4d PAUSE2003.pub SHA1 af016003ad503ed078c5f8254521d13a3e0c494f PAUSE2005.pub -SHA1 9db44d9b3219c20bffbc0579a8fd6db3ee41269e README +SHA1 8461a8f84cbc764d7c10a2ab1de26e0099a68c77 README SHA1 5adbf645e60685d6552fbcfff6e577399fe1f958 Releasenotes -SHA1 4fb30323ec1614bd17279e5f9a274352b044af25 Todo -SHA1 64f8ddd58693d482b282475210b4812b10d94f46 cpan +SHA1 078d56fd1f2105c148115fe3965d026b61e82bf1 Todo SHA1 efbe8e6882a2caa0d741b113959a706830ab5882 inc/Test/Builder.pm SHA1 ae1d68262bedc2475e2c6fd478d99b259b4fb109 inc/Test/More.pm SHA1 859ee1f3ba026d269c44b29d715d9af1e35333bc lib/Bundle/CPAN.pm -SHA1 ce3cb7368e12240dded13175e3e8b1f2e92019ed lib/CPAN.pm -SHA1 263a3def2375e38c67808d6a00b6dde14e91ed40 lib/CPAN/Admin.pm +SHA1 c1d69e71005cd3785aab81d522d02d8bfd28e0d3 lib/CPAN.pm +SHA1 104fd2b39fdba692143655b53bcf01d36c8ebf68 lib/CPAN/Admin.pm SHA1 a09f2474f4be085c40790af007a7163558f52eef lib/CPAN/FirstTime.pm SHA1 4fa9695417b54fc8d4e29684ad61689bc108274b lib/CPAN/Nox.pm SHA1 f703cd15b95c5fd4ca6c0576b8b4566501882ccf lib/CPAN/Version.pm -SHA1 0a7b5d987e699afe63d9e314f1aa456214c8e1d0 scripts/cpan +SHA1 bdaa092be8b158a7c2141c873b2dbd76066f3f8f scripts/cpan SHA1 67e80e1cfc3530932de7743dd0c833b2c387609d t/Nox.t SHA1 215dace24b507de20011d36cbe2d16ddea78bcf3 t/loadme.t SHA1 9e7950a79a153b532c5094c7091757d51040b218 t/mirroredby.t SHA1 952e77e7944637eed1b5d202afa98baef8a4c64c t/signature.t SHA1 d773586d80dbd79605a4b08c3ef310379c4d09c5 t/vcmp.t -SHA1 5ff8e84beac28a6ea06995f1f1840e21ffb0dd7b t/version.t +SHA1 b505a0db80ed4c835ad5676e9d1cbf09c86e6c34 t/version.t -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) -iD8DBQFDbdxt7IA58KMXwV0RAsgsAKCouQ0mcWsUs0aiycaU2JjONmqXTACgrB19 -ugwiu8ljK7CeNm5x5+8n3Qw= -=uum0 +iD8DBQFDb9HB7IA58KMXwV0RAjh7AKCj/RkAnuj3fdKb2yoOOGB8reorJQCfQK82 +o/ldf0WnbrRG65kf3p7s15Q= +=sAqA -----END PGP SIGNATURE----- diff --git a/lib/CPAN/bin/cpan b/lib/CPAN/bin/cpan index 207093c404..243286722e 100644 --- a/lib/CPAN/bin/cpan +++ b/lib/CPAN/bin/cpan @@ -1,5 +1,5 @@ #!/usr/bin/perl -# $Id: cpan,v 1.3 2002/08/30 08:55:15 k Exp $ +# $Id: cpan,v 1.1 2003/02/08 17:06:51 k Exp $ use strict; =head1 NAME @@ -116,7 +116,7 @@ brian d foy <bdfoy@cpan.org> use CPAN (); use Getopt::Std; -my $VERSION = sprintf "%.3f", 1.2 + substr(q$Rev: 228 $,4)/1000; +my $VERSION = sprintf "%.2f", substr(q$Rev: 245 $,4)/100; my $Default = 'default'; diff --git a/lib/CPAN/t/version.t b/lib/CPAN/t/version.t index 01de0069e4..eb1e55728b 100644 --- a/lib/CPAN/t/version.t +++ b/lib/CPAN/t/version.t @@ -1,15 +1,9 @@ # test if our own version numbers meet expectations -BEGIN { - if (! eval { require warnings; 1 }) { - printf "1..1\nok 1 # warnings not available: skipping %s\n", __FILE__; - exit; - } -} - use strict; -use warnings; -my @m = qw(CPAN CPAN::Admin CPAN::FirstTime CPAN::Nox CPAN::Version); +eval 'use warnings'; +my @m = qw(CPAN CPAN::FirstTime CPAN::Nox CPAN::Version); +push @m, 'CPAN::Admin' unless $ENV{PERL_CORE}; use Test::More; plan(tests => scalar @m); |