blob: a493322cc2950e286f318862c8b889bdd2a25902 [file] [log] [blame]
#!/usr/bin/perl
# $File: //depot/cpanplus/dist/bin/cpanp $
# $Revision: #8 $ $Change: 8345 $ $DateTime: 2003/10/05 19:25:48 $
use strict;
use vars '$VERSION';
use CPANPLUS;
$VERSION = CPANPLUS->VERSION;
use CPANPLUS::Shell qw[Default];
my $shell = CPANPLUS::Shell->new;
### if we're given a command, run it; otherwise, open a shell.
if (@ARGV) {
### take the command line arguments as a command
my $input = "@ARGV";
### if they said "--help", fix it up to work.
$input = 'h' if $input =~ /^\s*--?h(?:elp)?\s*$/i;
### strip the leading dash
$input =~ s/^\s*-//;
### pass the command line to the shell
### exit with a useful return value on return
exit not $shell->dispatch_on_input(input => $input, noninteractive => 1);
} else {
### open a shell for the user
$shell->shell();
}
=head1 NAME
cpanp - The CPANPLUS launcher
=head1 SYNOPSIS
B<cpanp>
B<cpanp> S<[-]B<a>> S<[ --[B<no>-]I<option>... ]> S< I<author>... >
B<cpanp> S<[-]B<mfitulrcz>> S<[ --[B<no>-]I<option>... ]> S< I<module>... >
B<cpanp> S<[-]B<d>> S<[ --[B<no>-]I<option>... ]> S<[ --B<fetchdir>=... ]> S< I<module>... >
B<cpanp> S<[-]B<xb>> S<[ --[B<no>-]I<option>... ]>
B<cpanp> S<[-]B<o>> S<[ --[B<no>-]I<option>... ]> S<[ I<module>... ]>
=head1 DESCRIPTION
This script launches the B<CPANPLUS> utility to perform various operations
from the command line. If it's invoked without arguments, an interactive
shell is executed by default.
Optionally, it can take a single-letter switch and one or more argument,
to perform the associated action on each arguments. A summary of the
available commands is listed below; C<cpanp -h> provides a detailed list.
h # help information
v # version information
a AUTHOR ... # search by author(s)
m MODULE ... # search by module(s)
f MODULE ... # list all releases of a module
i MODULE ... # install module(s)
t MODULE ... # test module(s)
u MODULE ... # uninstall module(s)
d MODULE ... # download module(s)
l MODULE ... # display detailed information about module(s)
r MODULE ... # display README files of module(s)
c MODULE ... # check for module report(s) from cpan-testers
z MODULE ... # extract module(s) and open command prompt in it
x # reload CPAN indices
o [ MODULE ... ] # list installed module(s) that aren't up to date
b # write a bundle file for your configuration
Each command may be followed by one or more I<options>. If preceded by C<no>,
the corresponding option will be set to C<0>, otherwise it's set to C<1>.
Example: To skip a module's tests,
cpanp -i --skiptest MODULE ...
Valid options for most commands are C<cpantest>, C<debug>, C<flush>, C<force>,
C<prereqs>, C<storable>, C<verbose>, C<md5>, C<signature>, and C<skiptest>; the
'd' command also accepts C<fetchdir>. Please consult L<CPANPLUS::Configure>
for an explanation to their meanings.
Example: To download a module's tarball to the current directory,
cpanp -d --fetchdir=. MODULE ...
=cut
1;
# Local variables:
# c-indentation-style: bsd
# c-basic-offset: 4
# indent-tabs-mode: nil
# End:
# vim: expandtab shiftwidth=4: