From 7abeb4937c97bb38646b564d9259bf7e913d92fe Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 23 Jan 2025 20:23:45 +0100 Subject: [PATCH] simplify code and document --- plugins/perl/README.md | 40 +++++++++++++++++++++--------------- plugins/perl/perl.plugin.zsh | 27 +++++------------------- 2 files changed, 28 insertions(+), 39 deletions(-) diff --git a/plugins/perl/README.md b/plugins/perl/README.md index dd9b7dc75..a387455c1 100644 --- a/plugins/perl/README.md +++ b/plugins/perl/README.md @@ -8,30 +8,36 @@ To use it, add `perl` to the plugins array in your zshrc file: 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 | Command | Description | -| :------------ | :----------------- | :------------------------------------- | -| pbi | `perlbrew install` | Install specific perl version | -| pbl | `perlbrew list` | List all perl version installed | -| pbo | `perlbrew off` | Go back to the system perl | -| pbs | `perlbrew switch` | Turn it back on | -| pbu | `perlbrew use` | Use specific version of perl | -| pd | `perldoc` | Show the perl documentation | -| ple | `perl -wlne` | Use perl like awk/sed | -| latest-perl | `curl ...` | Show the latest stable release of Perl | +| Aliases | Command | Description | +| :---------- | :----------------- | :------------------------------------- | +| pbi | `perlbrew install` | Install specific perl version | +| pbl | `perlbrew list` | List all perl version installed | +| pbo | `perlbrew off` | Go back to the system perl | +| pbs | `perlbrew switch` | Turn it back on | +| pbu | `perlbrew use` | Use specific version of perl | +| pd | `perldoc` | Show the perl documentation | +| ple | `perl -wlne` | Use perl like awk/sed | +| latest-perl | `curl ...` | Show the latest stable release of Perl | ## 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 ` - Looks for `` and replaces it with `` in ``. +- `pgs`: Perl Global Substitution: `pgs ` Looks for + `` and replaces it with `` in ``. -* `prep`: Perl grep, because 'grep -P' is terrible: `prep []` - Lets you work with pipes or files (if no `` provided, use stdin). +- `prep`: Perl grep, because 'grep -P' is terrible: `prep []` Lets you work with pipes or + files (if no `` provided, use stdin). ## Requirements -In order to make this work, you will need to have perl installed. -More info on the usage and install: https://www.perl.org/get.html +In order to make this work, you will need to have perl installed. More info on the usage and install: +https://www.perl.org/get.html diff --git a/plugins/perl/perl.plugin.zsh b/plugins/perl/perl.plugin.zsh index e16b433e1..137fa252a 100644 --- a/plugins/perl/perl.plugin.zsh +++ b/plugins/perl/perl.plugin.zsh @@ -56,27 +56,10 @@ prep() { # [pattern] [filename unless STDOUT] } # If the 'perlbrew' function isn't defined, perlbrew isn't setup. -if ! typeset -f perlbrew > /dev/null; then - # Has PERLBREW_ROOT been set prior, and is it a valid directory? If so, store - # value - if [[ -n "${PERLBREW_ROOT}" && -d "{{PERLBREW_ROOT}" ]]; then - perlbrew_root="${PERLBREW_ROOT}" +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 - - # If perlbrew_root isn't set yet, then set the default path - if [[ -z "${perlbrew_root}" ]]; then - perlbrew_root="${HOME}/perl5/perlbrew" - fi - - # If we can find perlbrew's 'bashrc' (yes, I know!)... - if [[ -d "${perlbrew_root}" && -f "${perlbrew_root}/etc/bashrc" ]]; then - # and if NO_AUTO_ADD isn't set - if [[ -z "${PERLBREW_NO_AUTO_ADD}" ]]; then - # Initialize perlbrew - source "${perlbrew_root}/etc/bashrc" - fi - fi - - # Clear our temporary variable - unset perlbrew_root + unset _perlbrew fi