.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "PINTO 1p" .TH PINTO 1p "2020-05-18" "perl v5.30.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" pinto \- Curate a custom repository of Perl modules .SH "VERSION" .IX Header "VERSION" version 0.14 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& pinto \-\-root=REPOSITORY_ROOT [global options] COMMAND [command options] [args] .Ve .SH "DESCRIPTION" .IX Header "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. .SH "COMMANDS" .IX Header "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: .PP .Vb 1 \& $> pinto commands .Ve .PP Each command has its own options and arguments. To get a brief summary: .PP .Vb 1 \& $> pinto help COMMAND .Ve .PP To see the complete manual for a command: .PP .Vb 1 \& $> pinto manual COMMAND .Ve .SH "GLOBAL OPTIONS" .IX Header "GLOBAL OPTIONS" The following options are available for all commands. .IP "\-\-root \s-1DIRECTORY\s0 | \s-1URI\s0" 4 .IX Item "--root DIRECTORY | URI" .PD 0 .IP "\-r \s-1DIRECTORY\s0 | \s-1URI\s0" 4 .IX Item "-r DIRECTORY | URI" .PD Specifies the root of your repository. This is mandatory for (almost) all commands unless you set it via the \f(CW\*(C`PINTO_REPOSITORY_ROOT\*(C'\fR environment variable. The root can be the path to a local directory or an equivalent \&\f(CW\*(C`file://\*(C'\fR \s-1URI.\s0 .Sp The root can also be the \s-1URI\s0 where a pintod server is listening. Depending on your server configuration, you may need to specify the port number in the \&\s-1URI,\s0 which is usually 3111. .IP "\-\-color" 4 .IX Item "--color" .PD 0 .IP "\-\-colour" 4 .IX Item "--colour" .IP "\-\-no\-color" 4 .IX Item "--no-color" .IP "\-\-no\-colour" 4 .IX Item "--no-colour" .PD Enable or disable colorized command output. By default, color is enabled unless the output is being sent to a pipe or file. Set the \f(CW\*(C`PINTO_NO_COLOR\*(C'\fR environment variable to disable color by default. .IP "\-\-password \s-1PASS\s0" 4 .IX Item "--password PASS" .PD 0 .IP "\-p \s-1PASS\s0" 4 .IX Item "-p PASS" .PD The password to use for server authentication. This is only relevant if using a remote repository. If the \s-1PASS\s0 is \*(L"\-\*(R" then you will be prompted for a password. .IP "\-\-quiet" 4 .IX Item "--quiet" .PD 0 .IP "\-q" 4 .IX Item "-q" .PD Report only fatal errors. This option silently overrides the \&\f(CW\*(C`\-\-verbose\*(C'\fR options. Also suppresses the progress meter. .Sp Note: The progress meter is always suppressed when using a remote repository. This will hopefully be fixed a future release. .IP "\-\-username \s-1NAME\s0" 4 .IX Item "--username NAME" .PD 0 .IP "\-u \s-1NAME\s0" 4 .IX Item "-u NAME" .PD The username to user for server authentication. This is only relevant if using a remote repository. Defaults to your current login. .IP "\-\-verbose" 4 .IX Item "--verbose" .PD 0 .IP "\-v" 4 .IX Item "-v" .PD Display more diagnostic messages. This switch can be repeated multiple times for greater effect. Diagnostic messages are always sent to \s-1STDERR.\s0 .SH "CONFIGURATION" .IX Header "CONFIGURATION" Each repository has a configuration file that lives inside the repository at \fI.pinto/config/pinto.ini\fR. 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. .PP The following configuration parameters are supported: .IP "sources = \s-1URL1\s0 [\s-1URL2 URL3 ...\s0]" 4 .IX Item "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 \s-1CPAN\s0 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 \f(CW\*(C`http://cpan.perl.org http://backpan.perl.org\*(C'\fR. .IP "target_perl_version = X.X.X" 4 .IX Item "target_perl_version = X.X.X" Sets the default \f(CW\*(C`target_perl_version\*(C'\fR property for all new stacks. Otherwise, all new stacks will target the version of perl that you first used to create the repository. You can always configure the target perl for each stack independently by using the props command. .IP "intermingle = 1 | 0" 4 .IX Item "intermingle = 1 | 0" If true, stacks will be allowed to \*(L"intermingle\*(R" distributions that have partially overlapping packages. This makes pinto behave like \s-1PAUSE\s0 which allows a package to remain in the index until it is replaced by a distribution containing the same package. Thus, it becomes possible to have an index that contains just \f(CW\*(C`some\*(C'\fR of the packages in a particular distribution. This typically occurrs when a package in a prior release is absent from a subsequent release. The default is false. .PP \&\fB\s-1BEWARE:\s0\fR 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. .SH "ENVIRONMENT VARIABLES" .IX Header "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 \fI~/.pintorc\fR file. .ie n .IP """PINTO_REPOSITORY_ROOT""" 4 .el .IP "\f(CWPINTO_REPOSITORY_ROOT\fR" 4 .IX Item "PINTO_REPOSITORY_ROOT" Sets the default path or \s-1URL\s0 of the pinto repository, if the \f(CW\*(C`\-\-root\*(C'\fR is not specified. The \f(CW\*(C`\-\-root\*(C'\fR 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. .ie n .IP """PINTO_EDITOR""" 4 .el .IP "\f(CWPINTO_EDITOR\fR" 4 .IX Item "PINTO_EDITOR" Sets the path to editor application that will be used to compose log messages. If not set, defaults to \f(CW\*(C`VISUAL\*(C'\fR or \f(CW\*(C`EDITOR\*(C'\fR. If none of those are set, either \f(CW\*(C`nano\*(C'\fR, \f(CW\*(C`pico\*(C'\fR, or \f(CW\*(C`vi\*(C'\fR will be used (in that order). .ie n .IP """PINTO_NO_COLOR""" 4 .el .IP "\f(CWPINTO_NO_COLOR\fR" 4 .IX Item "PINTO_NO_COLOR" .PD 0 .ie n .IP """PINTO_NO_COLOUR""" 4 .el .IP "\f(CWPINTO_NO_COLOUR\fR" 4 .IX Item "PINTO_NO_COLOUR" .PD If set to a true value, suppresses color in all command output. .ie n .IP """PINTO_PALETTE""" 4 .el .IP "\f(CWPINTO_PALETTE\fR" 4 .IX Item "PINTO_PALETTE" 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: .Sp .Vb 1 \& PINTO_PALETTE=\*(Aqred, light blue, green on_white\*(Aq .Ve .Sp Listing too many or too few colors will cause an exception, as will using an invalid color name. For backward compatibility the variables \f(CW\*(C`PINTO_COLORS\*(C'\fR and \f(CW\*(C`PINTO_COLOURS\*(C'\fR can also be used (but they are deprecated). .ie n .IP """PINTO_USERNAME""" 4 .el .IP "\f(CWPINTO_USERNAME\fR" 4 .IX Item "PINTO_USERNAME" Sets the default username when \f(CW\*(C`\-\-username\*(C'\fR is not specified. This is only used for authentication with a pintod server. Defaults to your current shell username. .ie n .IP """PINTO_AUTHOR_ID""" 4 .el .IP "\f(CWPINTO_AUTHOR_ID\fR" 4 .IX Item "PINTO_AUTHOR_ID" Sets the default author identity when the \f(CW\*(C`\-\-author\*(C'\fR option is not specified (currently, only used by the add command). Defaults to your current shell username. By \s-1PAUSE\s0 convention, all author id's are forced to uppercase. .ie n .IP """PINTO_PAGER""" 4 .el .IP "\f(CWPINTO_PAGER\fR" 4 .IX Item "PINTO_PAGER" Sets the path to the pager application that will be used to paginate output from each command. Defaults to \f(CW\*(C`PAGER\*(C'\fR. If none of these are set, then no pager is used. .ie n .IP """PINTO_PAGER_OPTIONS""" 4 .el .IP "\f(CWPINTO_PAGER_OPTIONS\fR" 4 .IX Item "PINTO_PAGER_OPTIONS" Sets the options that will be passed to the pager (if there is one). For example, you could use the \f(CW\*(C`\-R\*(C'\fR option to instruct \f(CW\*(C`less\*(C'\fR to pass through the colors that pinto usually displays: .Sp .Vb 1 \& export PINTO_PAGER_OPTIONS=\-R .Ve .Sp Most pagers have their own environment variables to control their default behavior. \f(CW\*(C`PINTO_PAGER_OPTIONS\*(C'\fR gives you a way to set defaults that are specific to when you are using it with pinto. .ie n .IP """PINTO_DIFF_STYLE""" 4 .el .IP "\f(CWPINTO_DIFF_STYLE\fR" 4 .IX Item "PINTO_DIFF_STYLE" Sets the default style for diff reports. Valid styles are \f(CW\*(C`detailed\*(C'\fR and \&\f(CW\*(C`concise\*(C'\fR. The default is \f(CW\*(C`concise\*(C'\fR. For commands that produce diff reports, this can be overriden with the \f(CW\*(C`\-\-diff\-style\*(C'\fR option. This variable only has effect when using a local repository. .ie n .IP """PINTO_DEBUG""" 4 .el .IP "\f(CWPINTO_DEBUG\fR" 4 .IX Item "PINTO_DEBUG" If set to 1, pinto will emit more diagnostic messages to \s-1STDERR.\s0 If set to 2, pinto will emit even more diagnostic messages. This variable only has effect when using a local repository. .ie n .IP """PINTO_LOCKFILE_TIMEOUT""" 4 .el .IP "\f(CWPINTO_LOCKFILE_TIMEOUT\fR" 4 .IX Item "PINTO_LOCKFILE_TIMEOUT" Sets the timeout (in seconds) for obtaining a lock on the repository. The default is 50. This variable only has effect when using a local repository. .ie n .IP """PINTO_STALE_LOCKFILE_TIMEOUT""" 4 .el .IP "\f(CWPINTO_STALE_LOCKFILE_TIMEOUT\fR" 4 .IX Item "PINTO_STALE_LOCKFILE_TIMEOUT" Sets the timeout (in seconds) to consider a lock on the repository stale and expire it. The default is 0 (don't expire). This variable only has effect when using a local repository. .ie n .IP """PINTO_SHELL""" 4 .el .IP "\f(CWPINTO_SHELL\fR" 4 .IX Item "PINTO_SHELL" Sets the path to the command pinto will use for interactive shells (like with the look command). If this is not set, pinto defaults to either \f(CW\*(C`SHELL\*(C'\fR or \f(CW\*(C`COMSPEC\*(C'\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" pintod to allow remote access to your Pinto repository. .PP Pinto::Manual for general information on using Pinto. .PP Stratopan for hosting your Pinto repository in the cloud. .SH "AUTHOR" .IX Header "AUTHOR" Jeffrey Ryan Thalhammer .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2015 by Jeffrey Ryan Thalhammer. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.