NAME

App::Pinto::Command::pull - pull archives from upstream repositories

VERSION

version 0.065_03

SYNOPSIS

pinto --root=REPOSITORY_ROOT pull [OPTIONS] TARGET ...

DESCRIPTION

This command locates packages in your upstream repositories and then pulls the distributions providing those packages into your repository and registers them on a stack. Then it recursively locates and pulls all the distributions that are necessary to satisfy their prerequisites. You can also request to directly pull particular distributions.

When locating prerequisites, Pinto first looks at the packages that already exist in the local repository, then Pinto looks at the packages that are available on the upstream repositories.

COMMAND ARGUMENTS

Arguments are the targets that you want to pull. Targets can be specified as packages (with or without a minimum version number) or a distributions. For example:

Foo::Bar                                 # Pulls any version of Foo::Bar
Foo::Bar~1.2                             # Pulls Foo::Bar 1.2 or higher
SHAKESPEARE/King-Lear-1.2.tar.gz         # Pulls a specific distribuion
SHAKESPEARE/tragedies/Hamlet-4.2.tar.gz  # Ditto, but from a subdirectory

You can also pipe arguments to this command over STDIN. In that case, blank lines and lines that look like comments (i.e. starting with "#" or ';') will be ignored.

COMMAND OPTIONS

--dry-run

Go through all the motions, but do not actually commit any changes to the repository. Use this option to see how upgrades would potentially impact the stack.

--no-fail

!! THIS OPTION IS EXPERIMENTAL !!

Normally, failure to pull a target (or its prerequisites) causes the command to immediately abort and rollback the changes to the repository. But if --no-fail is set, then only the changes caused by the failed target (and its prerequisites) will be rolled back and the command will continue processing the remaining targets.

This option is useful if you want to throw a list of targets into a repository and see which ones are problematic. Once you've fixed the broken ones, you can throw the whole list at the repository again.

--no-recurse
-n

Do not recursively pull any distributions required to satisfy prerequisites for the targets.

--message=TEXT
-m TEXT

Use TEXT as the revision history log message. If you do not use the --message option or the --use-default-message option, then you will be prompted to enter the message via your text editor. Use the EDITOR or VISUAL environment variables to control which editor is used. A log message is not required whenever the --dry-run option is set, or if the action did not yield any changes to the repository.

--pin

Pins the packages to the stack, so they cannot be changed until you unpin them. Only the packages in the requested targets will be pinned -- packages in prerequisites will not be pinned. However, you may pin them separately with the pin command if you so desire.

--stack=NAME
-s NAME

Puts all the packages onto the stack with the given NAME. Defaults to the name of whichever stack is currently marked as the default stack. Use the stacks command to see the stacks in the repository.

--use-default-message
-M

Use the default value for the revision history log message. Pinto will generate a semi-informative log message just based on the command and its arguments. If you set an explicit message with --message, the --use-default-message option will be silently ignored.

AUTHOR

Jeffrey Ryan Thalhammer <jeff@stratopan.com>

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.