App-plx
view release on metacpan or search on metacpan
plx --init <perl> # Initialize layout config for .
plx --bareinit <perl> # Initialize bare layout config for .
plx --base # Show layout base dir
plx --base <base> <action> <args> # Run action with specified base dir
plx --perl # Show layout perl binary
plx --libs # Show layout $PERL5LIB entries
plx --paths # Show layout additional $PATH entries
plx --env # Show layout env var changes
plx --cpanm -llocal --installdeps . # Run cpanm from outside $PATH
plx --config perl # Show perl binary
plx --config perl set /path/to/perl # Select exact perl binary
plx --config perl set perl-5.xx.y # Select perl via $PATH or perlbrew
plx --config libspec # Show lib specifications
plx --config libspec add <name> <path> # Add lib specification
plx --config libspec del <name> <path> # Delete lib specification
plx --config env # Show additional env vars
plx --config env add <name> <path> # Add env var
plx --config env del <name> <path> # Delete env var
plx --exec <cmd> <args> # exec()s with env vars set
plx --perl <args> # Run perl with args
plx --cmd <cmd> <args> # DWIM command:
cmd = perl -> --perl <args>
cmd = -<flag> -> --perl -<flag> <args>
cmd = some/file -> --perl some/file <args>
cmd = ./file -> --perl ./file <args>
cmd = name ->
exists .plx/cmd/<name> -> --perl .plx/cmd/<name> <args>
exists dev/<name> -> --perl dev/<name> <args>
exists bin/<name> -> --perl bin/<name> <args>
else -> --exec <name> <args>
plx --which <cmd> # Expands --cmd <cmd> without running
plx <something> <args> # Shorthand for plx --cmd
plx --commands <filter>? # List available commands
plx --multi [ <cmd1> <args1> ] [ ... ] # Run multiple actions
plx --showmulti [ ... ] [ ... ] # Show multiple action running
plx [ ... ] [ ... ] # Shorthand for plx --multi
plx --userinit <perl> # Init ~/.plx with ~/perl5 ll
plx --installself # Installs plx and cpanm into layout
plx --installenv # Appends plx --env call to .bashrc
plx --userstrap <perl> # userinit+installself+installenv
--help
Prints out the usage information (i.e. the "SYNOPSIS") for plx.
--init
plx --init # resolve 'perl' in $PATH
plx --init perl # (ditto)
plx --init 5.28.0 # looks for perl5.28.0 in $PATH
# or perl-5.28.0 in perlbrew
plx --init /path/to/some/perl # uses the absolute path directly
Initializes the layout.
If a perl name is passed, attempts to resolve it via $PATH and
"perlbrew" and sets the result as the layout perl; if not looks for just
"perl".
Creates the following libspec config:
25-local.ll local
50-devel.ll devel
75-lib.dir lib
--bareinit
Identical to "--init" but creates no default configs except for "perl".
--base
plx --base
plx --base <base> <action> <args>
Without arguments, shows the selected base dir - "plx" finds this by
checking for a ".plx" directory in the current directory, and if not
tries the parent directory, recursively. The search stops either when
"plx" finds a ".git" directory, to avoid accidentally escaping a project
repository, or at the last directory before the root - i.e. "plx" will
test "/home" but not "/".
With arguments, specifies a base dir to use, and then invokes the rest
of the arguments with that base dir selected - so for example one can
make a default configuration in $HOME available as "plh" by running:
plx --init $HOME
alias plh='plx --base $HOME'
--libs
Prints the directories that will be added to "PERL5LIB", one per line.
These will include the "lib/perl5" subdirectory for each "ll" entry in
the libspecs, and the directory for each "dir" entry.
--paths
Prints the directories that will be added to "PATH", one per line.
These will include the containing directory of the environment's perl
binary if not already in "PATH", followed by the "bin" directories of
any "ll" entries in the libspecs.
--env
Prints the changes that will be made to your environment variables, in a
syntax that is (hopefully) correct for your current shell.
--cpanm
plx --cpanm -Llocal --installdeps .
plx --cpanm -ldevel App::Ack
Finds the "cpanm" binary in the "PATH" that "plx" was executed *from*,
and executes it using the layout's perl binary and environment
variables.
Requires the user to specify a local::lib to install into via "-l" or
"-L" in order to avoid installing modules into unexpected places.
Note that this action exists primarily for bootstrapping, and if you
want to use a different installer such as App::cpm, you'd install it
with:
( run in 0.881 second using v1.01-cache-2.11-cpan-6aa56a78535 )