From: sev Date: Mon, 14 Oct 2024 23:35:51 +0000 (-0500) Subject: zshenv: better perl setup, dont require local::lib X-Git-Url: https://git.sev.monster/~sev/dotfiles.git/commitdiff_plain/ec09b7dccf0f91b985b4663102945dec1c6c1c50?hp=6bbeb5288dbdeb3ae1df1369db78515e4b9ab08c zshenv: better perl setup, dont require local::lib --- diff --git a/etc/zsh/.zshenv b/etc/zsh/.zshenv index 29f59e7..16bf106 100644 --- a/etc/zsh/.zshenv +++ b/etc/zsh/.zshenv @@ -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