NAME
parrepo - Server side script for managing PAR repositories
SYNOPSIS
parrepo --help | --version
parrepo COMMAND [command options]
parrepo create [-r REPODIR] [--force]
parrepo inject [-r REPODIR] filename.par
DESCRIPTION
This is a frontend script to the PAR::Repository module. It lets you create and manage PAR repositories.
COMMANDS
All commands take the --verbose option to set the verbosity of error messages. Specifying that option multiple times (up to 4x) increases the verbosity even more.
Instead of using the --verbose option n
times, you can also use the --verbosity n flag to set it to level n
. Using --verbosity overrides any occurrances of --verbose.
- create
-
Creates a new repository. Defaults to using a subdirectory called
repo
.Parameters:
-r or --repository Specifies the repository path. -f or --force Overwrite the directory if it exists. --fake-symlinks Do not use symlinks. Default on platforms that don't support symlinks. Necessary if you plan to move the repository to a computer that doesn't support symlinks.
- inject
-
Injects a PAR distribution into the repository. You need to specify a distribution file to inject using the
--file
(or-f
) option.We need to find out which name and version the distribution has as well as which architecture and perl version it was compiled for. You can set all these using options (see below). If you do not, parrepo tries to infer this information from the file name. This works if the file name is of the following form:
WWW-Mechanize-1.32-x86_64-linux-gnu-thread-multi-5.8.6.par
The command line options take precedence over file name parsing.
If you specify the architecture name as any_arch, the distribution will be put into the architecture agnostic portion of the repository. any_version works similar for the perl version.
Alternatively, you can use the
--any-arch
and--any-version
switches for a similar effect. If you use the switches, only a symlink to the original distribution will be put into theany_*
section of the repository.Parameters:
-f or --file The distribution file to inject. (mandatory) parrepo will do a glob if the file name contains meta characters. this works: --file => '*.par' -r or --repository Specifies the repository path. -n or --distname -v or --distversion -a or --arch -p or --perlversion Set the necessary distribution information. --any-arch or --anyarch or --any_arch If set, a symlink to the distribution will be put into the architecture agnostic portion of the repository. --any-version or --anyversion or --any_version Same for the perl version. -o or --overwrite Set this if you want to overwrite a distribution of the same name in the repository. --no-scripts or --noscripts or --no_scripts Do not import any executables into the scripts database.
- remove
-
Removes a distribution or a symlink from the repository. As with the inject command, you can specify a distribution (file) name using the
-f
option or specify the separate pieces of information necessary to construct the distribution file name.Parameters:
-f or --file The distribution file to remove. -r or --repository Specifies the repository path. -n or --distname -v or --distversion -a or --arch -p or --perlversion Set the necessary distribution information.
- query module
-
Queries the repository for modules. First argument should be a module name or regular expression. Examples:
parrepo query module Foo::Bar -r myrepo parrepo query module /Bar/ parrepo query module /Bar/ --arch linux
Parameters:
-a or --arch Limits the query to architectures matching this regex.
- convert_symlinks
-
Converts an existing repository that uses symlinks to one that does not. Will potentially increase the size of the repository. Useful before copying the repository to a host which does not support symlinks or transfering it with tools which don't. Not necessary if the repository was created on a platform that doesn't use symlinks. Once converted, the repository will never use symlinks again.
Parameters:
-r or --repository Specifies the repository path.
- query script
-
Queries the repository for scripts. First argument should be a script name or regular expression. Examples:
parrepo query script some_script -r myrepo parrepo query script /foo/ parrepo query script /foo/ --arch linux
Parameters:
-a or --arch Limits the query to architectures matching this regex.
- query dist
-
Queries the repository for distributions. First argument should be a distribution name or regular expression. Examples:
parrepo query dist Foo-Bar-0.01-any_arch-5.8.8.par -r myrepo parrepo query dist /Foo-Bar/ parrepo query dist /5.8.8.par$/ --arch linux
Parameters:
-a or --arch Limits the query to architectures matching this regex.