]> git.sev.monster Git - dotfiles.git/blobdiff - etc/zsh/.zshenv
zshenv: fix regression with perl changes
[dotfiles.git] / etc / zsh / .zshenv
index 29f59e7375f8dc28af7b9fc1f866ba88f154d568..7a923e9929558cf175c27500aa131b6d37e04f54 100644 (file)
@@ -294,11 +294,22 @@ if [[ ! -v GNUPGHOME ]] {
 }
 
 ## perl local lib
-[[ ! -v PERL_LOCAL_LIB_ROOT && -v commands[perl] &&
-   -d ${XDG_DATA_HOME:-~/.local/share}/perl5/lib/perl5 ]] &&
-  eval $(perl -I${XDG_DATA_HOME:-~/.local/share}/perl5/lib/perl5 \
-              -Mlocal::lib=${XDG_DATA_HOME:-~/.local/share}/perl5 2>/dev/null)
-
+if [[ ! -v PERL_LOCAL_LIB_ROOT && -v commands[perl] ]] {
+    _p5=${XDG_DATA_HOME:-~/.local/share}/perl5
+    [[ -d $_p5 ]] || mkdir -p $_p5
+    if [[ -f $_p5/lib/perl5/local/lib.pm ]] {
+        eval $(perl -I$_p5/lib/perl5 -Mlocal::lib=$_p5 2>/dev/null)
+    } else {
+        # emulate local::lib if not installed
+        path=($_p5/bin "${path[@]}")
+        export \
+          PERL_MB_OPT="--install_base '$_p5'" \
+          PERL_MM_OPT=INSTALL_BASE=$_p5 \
+          PERL5LIB=$_p5/lib/perl5 \
+          PERL_LOCAL_LIB_ROOT=$_p5${PERL_LOCAL_LIB_ROOT:+:$PERL_LOCAL_LIB_ROOT}
+    }
+    unset _p5
+}
 ## go
 if [[ -v commands[go] ]] {
     [[ ! -v GOPATH ]] && export GOPATH=${XDG_DATA_HOME:-~/.local/share}/go:~/go
This page took 0.035288 seconds and 4 git commands to generate.