1
0
Fork 0

feat(perl): add perlbrew auto activation (#12814)

Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
This commit is contained in:
jamesrtnz 2025-01-24 08:24:43 +13:00 committed by GitHub
parent 501f29f90c
commit 9a0e22c184
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 32 additions and 17 deletions

View file

@ -8,10 +8,16 @@ To use it, add `perl` to the plugins array in your zshrc file:
plugins=(... perl) plugins=(... perl)
``` ```
## Perlbrew activation
If the plugin detects that `perlbrew` hasn't been activated, yet there is an installation of it in
`$PERLBREW_ROOT`, it'll initialize by default. To avoid this behaviour, set `ZSH_PERLBREW_ACTIVATE=false`
before `source oh-my-zsh.sh` in your zshrc.
## Aliases ## Aliases
| Aliases | Command | Description | | Aliases | Command | Description |
| :------------ | :----------------- | :------------------------------------- | | :---------- | :----------------- | :------------------------------------- |
| pbi | `perlbrew install` | Install specific perl version | | pbi | `perlbrew install` | Install specific perl version |
| pbl | `perlbrew list` | List all perl version installed | | pbl | `perlbrew list` | List all perl version installed |
| pbo | `perlbrew off` | Go back to the system perl | | pbo | `perlbrew off` | Go back to the system perl |
@ -23,15 +29,15 @@ plugins=(... perl)
## Functions ## Functions
* `newpl`: creates a basic Perl script file and opens it with $EDITOR. - `newpl`: creates a basic Perl script file and opens it with $EDITOR.
* `pgs`: Perl Global Substitution: `pgs <find_pattern> <replace_pattern> <filename>` - `pgs`: Perl Global Substitution: `pgs <find_pattern> <replace_pattern> <filename>` Looks for
Looks for `<find_pattern>` and replaces it with `<replace_pattern>` in `<filename>`. `<find_pattern>` and replaces it with `<replace_pattern>` in `<filename>`.
* `prep`: Perl grep, because 'grep -P' is terrible: `prep <pattern> [<filename>]` - `prep`: Perl grep, because 'grep -P' is terrible: `prep <pattern> [<filename>]` Lets you work with pipes or
Lets you work with pipes or files (if no `<filename>` provided, use stdin). files (if no `<filename>` provided, use stdin).
## Requirements ## Requirements
In order to make this work, you will need to have perl installed. In order to make this work, you will need to have perl installed. More info on the usage and install:
More info on the usage and install: https://www.perl.org/get.html https://www.perl.org/get.html

View file

@ -54,3 +54,12 @@ pgs() { # [find] [replace] [filename]
prep() { # [pattern] [filename unless STDOUT] prep() { # [pattern] [filename unless STDOUT]
perl -nle 'print if /'"$1"'/;' $2 perl -nle 'print if /'"$1"'/;' $2
} }
# If the 'perlbrew' function isn't defined, perlbrew isn't setup.
if [[ $ZSH_PERLBREW_ACTIVATE != false ]] && (( ! $+functions[perlbrew] )); then
local _perlbrew="${PERLBREW_ROOT:-${HOME}/perl5/perlbrew}"
if [[ -f "${_perlbrew}/etc/bashrc" ]]; then
source "${_perlbrew}/etc/bashrc"
fi
unset _perlbrew
fi