The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
# use warnings;
use Getopt::Long qw(:config no_ignore_case auto_version auto_help);
use Pod::Usage;
$main::VERSION = $PPM::Make::VERSION;
use PPM::Make::Install;
my %opts = ();
my @files = ();
my %progs = ();
GetOptions(\%opts, 
           'ignore|i',
           'remove|r',
           'force|f',
           'upgrade',
           'skip',
          ) or pod2usage(2);

my $dist = shift;
$opts{dist} = $dist if $dist;

my $ppm = PPM::Make::Install->new(%opts);
$ppm->make_ppm();
$ppm->ppm_install();

__END__

=head1 NAME

ppm_install - build and install a distribution via ppm

=head1 SYNOPSIS

 ppm_install [options] [Module | Distribution]

Options:

 [--version]          : print version information and exit
 [--help]             : print this help screen
 [-r | --remove]      : remove the build directory after installation
 [-i | --ignore]      : ignore any failing test results
 [-f | --force]       : force remaking a distribution
 [--upgrade]          : upgrade via ppm
 [--program]  b=a     : specify "a" to be used for the "b" program
 [ --skip]            : skip running the tests

Additional Arguments:

   Module       : specify a module to fetch (requires CPAN.pm)
   Distribution : specify a distribution to fetch

With no arguments, ppm_install will install a distribution
inside the current directory.

=head1 DESCRIPTION

C<ppm_install> is an interface to the C<PPM::Make::Install> module,
and is used to build a PPM (Perl Package Manager) distribution
from a CPAN source distribution and then install it with 
the C<ppm> utility. See L<PPM::Make> for a discussion.

Apart from the options described below, without any arguments 
C<ppm_install> will assume it is inside an unpacked source
distribution and make the corresponding PPM distribution.
If it is given an argument of what looks like a module
name (eg, I<Net::FTP>), it will use C<CPAN.pm> to look up the 
corresponding distribution and fetch and build it (module
names are case sensistive). Otherwise, 
additional arguments (eg, F<package.tar.gz>, or
I<http://someplace.org/package.tar.gz>) will be interpreted
as distributions to fetch and build.

=over

=item [-i | --ignore]

By default, C<ppm_install>, if it is building the distribution,
will die if all tests do not pass. Turning on this option
instructs C<ppm_install> to ignore any test failures.

=item [ --skip ]

Setting this option will skip running any tests supplied
with the package.

=item [-r | --remove]

If specified, the directory used to build the ppm distribution
given on the command line will be removed after a successful install.

=item [-f | --force]

By default, if C<ppm_install> detects a F<blib/> directory,
it will assume the distribution has already been made, and
will not remake it. This option forces remaking the distribution.

=item [--upgrade]

Will do an upgrade of the specified package, if applicable.

=item [--help]

This prints out a short help screen and exits.

=item [--version]

This prints out some version information and exits.

=back

=head1 COPYRIGHT

This program is copyright, 2003, by Randy Kobes 
E<lt>r.kobes@uwinnipeg.caE<gt>.
It is distributed under the same terms as Perl itself.

=head1 SEE ALSO

L<PPM> and L<PPM::Make>.

=cut