NAME
App::GitGot::Command::lib - Generate a lib listing off a .gotlib file
VERSION
version 1.337
SYNOPSIS
$ echo '@dancer/lib' > .gotlib
$ export PERL5LIB=`got lib yet_another_repo_name/lib`
# PERL5LIB will now hold the path to the 'lib'
# subdirectory of 'yet_another_repo_name', followed
# by the 'lib' directories of all repos tagged with 'dancer',
# followed by the original paths of PERL5LIB
DESCRIPTION
Got's lib
subcommand is a Got-aware answer to ylib and Devel::Local, and provides an easy way to alter the PERL5LIB environment variable (or indeed any other env variable) with local libraries in got-managed repos.
The subcommand will merge any library passed on the command line and found in the the gotlib file (if present), and will generate a library listing where those directories are prepended to PERL5LIB (command-line entries first, then the ones from the gotlib file).
Libraries can be given in three different ways:
- absolute or relative path
-
If the value begins with a '/' or a '.', it is assumed to be a straight path. It will be expanded to its absolute value, but otherwise left untouched.
For example './lib' will be expanded to '/path/to/current/directory/lib'
- tag
-
If the value begins with @, it is assumed to be a tag, and will be replaced by the path to all repositories having that tag.
For example '@dancer/lib' will be expanded to '/path/to/dancer/project1/lib:/path/to/dancer/project2/lib:...'
- project name
-
If not a path nor a tag, the value is assumed to be a project name.
For example 'vim-x/lib' will be expanded to '/path/to/vim-x/lib'
OPTIONS
--separator
Separator printed between library directories in the output. Defaults to ':' (colon).
--libvar
Environment variable containing the directories to include at the end of the library listing. Defaults to PERL5LIB.
--gotlib
File containing the list of directories to include. Defaults to .gotlib.
SEE ALSO
AUTHOR
John SJ Anderson <john@genehack.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2020 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.