#!/usr/bin/env perl

# ABSTRACT: manage a Pinto repository
# PODNAME: pinto

use strict;
use warnings;

#-----------------------------------------------------------------------------

our $VERSION = '0.045'; # VERSION

#-----------------------------------------------------------------------------

use App::Pinto;
exit App::Pinto->run;

#-----------------------------------------------------------------------------



=pod

=for :stopwords Jeffrey Thalhammer Imaginative Software Systems

=head1 NAME

pinto - manage a Pinto repository

=head1 VERSION

version 0.045

=head1 SYNOPSIS

  pinto --root=REPOSITORY_ROOT [global options] COMMAND [command options] [args]

=head1 DESCRIPTION

pinto is a tool for creating and managing a custom CPAN-like
repository of Perl modules.  The purpose of such a repository is to
provide a stable, curated stack of dependencies from which you can
reliably build, test, and deploy your application using the standard
Perl tool chain.  pinto provides various commands for gathering and
managing distribution dependencies within the repository, so that you
can control precisely which dependencies go into your application.

=head1 GLOBAL OPTIONS

The following options are available for all commands.

=over 4

=item --root DIRECTORY | URL

=item -r DIRECTORY | URL

Specifies the root of your repository.  This is mandatory for (almost)
all commands unless you've set the C<PINTO_REPOSITORY_ROOT>
environment variable to point to your repository.  The root can be a
path to a local directory, or the URL where a L<pintod> server is
listening.

=item --nocolor

Do not colorize diagnostic messages according to severity.

=item --password PASS

=item -p PASS

The password to use for server authentication.  This is only relevant
if using a remote repository.  If the PASS is "-" then you will
be prompted for a password.

=item --quiet

=item -q

Report only fatal errors.  This option silently overrides the
C<--verbose> options.

=item --username NAME

=item -u NAME

The username to user for server authentication.  This is only relevant
if using a remote repository.  Defaults to your current login.

=item --verbose

=item -v

Display more diagnostic messages.  This switch can be repeated multiple
times for greater effect.

=back

=head1 COMMANDS

pinto supports several commands that perform various operations on
your repository, or report information about your repository.  To get
a listing of all the available commands:

  $> pinto commands

Each command has its own options and arguments.  To get a brief
summary:

  $> pinto help COMMAND

To see the complete manual for a command:

  $> pinto manual COMMAND

=head1 CONFIGURATION

The F<.pinto/config> directory of every repository contains a
configuration file named F<pinto.ini>.  This file will be generated
for you whenever you create a new repository.  Thereafter, it is up to
you to manually adjust the configuration file as you see fit.

The configuration file is in the typical INI-file format.  Parameters
are C<NAME = VALUE> pairs.  Blank lines are ignored, leading and
trailing whitespace is discarded.  Comments start with a semi-colon
(;).

=over 4

=item log_level = debug|notice|info|warn|error

Sets the minimum logging level for the repository's log file.  The
default is C<notice>.  This is independent of the screen logs that
pinto emits.

=item sources = URL [ URL URL ... ]

A space-delimited list of the URLs of the repositories that pinto
will pull dependencies from.  These could be public CPAN mirrors, the
BackPAN, a private L<CPAN::Mini> mirror, or other Pinto repositories.
Defaults to L<http://cpan.perl.org>.

=back

=head1 IMPORTANT NOTE

pinto is just a front-end.  To do anything useful, you'll also need
to install one of the back-ends, which ship separately.  If you need
to create new repositories and/or work directly with repositories on
the local disk, then install L<Pinto>.  If you already have a
repository on a remote host that is running L<pintod>, then install
L<Pinto::Remote>.  If you're not sure what you need, then install
L<Task::Pinto> to get the whole kit.

=head1 SEE ALSO

L<Pinto::Manual> for general information on using Pinto.

L<pintod> to allow remote access to your Pinto repository.

=head1 AUTHOR

Jeffrey Thalhammer <jeff@imaginative-software.com>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Imaginative Software Systems.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut


__END__

