NAME

pinto - Curate a custom repository of Perl modules

VERSION

version 0.084

SYNOPSIS

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

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.

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

GLOBAL OPTIONS

The following options are available for all commands.

--root DIRECTORY | URL
-r DIRECTORY | URL

Specifies the root of your repository. This is mandatory for (almost) all commands unless you've set the 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 pintod server is listening.

--no-color
--no-colour

Do not colorize command output.

--password PASS
-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.

--quiet
-q

Report only fatal errors. This option silently overrides the --verbose options. Also suppresses the progress meter.

Note: The progress meter is always suppressed when using a remote repository. This will hopefully be fixed a future release.

--username NAME
-u NAME

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

--verbose
-v

Display more diagnostic messages. This switch can be repeated multiple times for greater effect. Diagnostic messages are always sent to STDERR.

CONFIGURATION

Each repository has a configuration file that lives inside the repostiory at .pinto/config/pinto.ini. This file is generated for you with default values when you create the repository. You can influence the initial value for some of the properties when you run the init command. Thereafter, you can change these properties by editing the configuraiton file directly.

The following configuration parameters are supported:

allow_duplicates = 0|1

!! THIS PROPERTY IS EXPERIMENTAL !!

If set to 1, pinto will allow the repository to contain multiple copies of the same distribution but under a different author or archive name. Normally, pinto prohibits you from having identical distributions with different names. This should only be used if creating a repository that mirrors another one which might have duplicate distributions (for example, mirroring all of CPAN in a Pinto repository).

no_history = 0|1

!! THIS PROPERTY IS EXPERIMENTAL !!

If set to 1, pinto will not record the state of the stack at each revision. This makes the database smaller and faster. But it also means you'll never be able to revert, reset, or diff a stack with a prior revision. However, log messages will still be recorded and can be displayed as usual. This should only be used if creating an archival repository where you don't really care about the changes in each revision (for example, tracking all of CPAN in a Pinto repository). The default value is 0.

sources = URL1 [URL2 URL3 ...]

This is a space-delimited list of the URLs for the upstream repositories that this repository will pull archives from. These can point to CPAN mirrors, minicpan mirrors, or stacks within other Pinto repositories. Pinto will search the source repositories in the order they are listed here. The default value is http://cpan.perl.org http://backpan.perl.org.

BEWARE: The above configuration properties are global -- they affect every stack in the repository. They also have a major affect on how the repository behaves. For these reasons, it is generally unwise to change these parameters once you have established the repository and filled it with content. If you do change them, be sure and notify your team about it. Each stack also has some stack-specific configuration properties. Those can be shown or set using the props command.

ENVIRONMENT VARIABLES

The following environment variables influence the behavior of pinto. If you have installed pinto as a stand-alone application as described in Pinto::Manual::Installing, then the best place to set these variables is in your ~/.pintorc file.

PINTO_REPOSITORY_ROOT

Sets the default path or URL of the pinto repository, if the --root is not specified. The --root is required for almost all commands. So if you usually only work with one repository, then setting this can save you quite a bit of typing.

PINTO_EDITOR

Sets the path to editor application that will be used to compose log messages. If not set, defaults to VISUAL or EDITOR. At least one of these variables must be defined.

PINTO_NO_COLOR
PINTO_NO_COLOUR

If set to a true value, suppresses color in all command output.

PINTO_COLORS
PINTO_COLOURS

A comma-separated list of exactly three color names. Any name supported by Term::ANSIColor is allowed. These will be the colors that pinto uses to colorize various output. For example:

PINTO_COLORS='red, light blue, green on_white'

Listing too many or too few colors will cause an exception, as will using an invalid color name.

PINTO_USERNAME

Sets the default username when --username is not specified. This is only used for authentication with a pintod server. Defaults to your current shell username.

PINTO_AUTHOR_ID

Sets the default author identity when the --author option is not specified (currently, only used by the add command). Defaults to your current shell username. By PAUSE convention, all author id's are forced to uppercase.

PINTO_PAGER

Sets the path to the pager application that will be used to paginate output from each command. Defaults to PAGER. If none of these are set, then no pager is used.

PINTO_DEBUG

If set to 1, pinto will emit more diagnostic messages to STDERR. If set to 2, pinto will emit even more diagnostic messages.

SEE ALSO

pintod to allow remote access to your Pinto repository.

Pinto::Manual for general information on using Pinto.

Stratopan for hosting your Pinto repository in the cloud.

CONTRIBUTORS

  • Cory G Watson <gphat@onemogin.com>

  • Jakob Voss <jakob@nichtich.de>

  • Jeff <jeff@callahan.local>

  • Jeffrey Ryan Thalhammer <jeff@imaginative-software.com>

  • Jeffrey Thalhammer <jeff@imaginative-software.com>

  • Karen Etheridge <ether@cpan.org>

  • Michael G. Schwern <schwern@pobox.com>

  • Steffen Schwigon <ss5@renormalist.net>

  • Wolfgang Kinkeldei <wolfgang@kinkeldei.de>

  • Yanick Champoux <yanick@babyl.dyndns.org>

  • hesco <hesco@campaignfoundations.com>

AUTHOR

Jeffrey Ryan Thalhammer <jeff@stratopan.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Jeffrey Ryan Thalhammer.

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