plenv の Perl バージョンを取得する zsh スクリプト
plenv でつかわれる Perl をプロンプトに表示したりするのに使えるかと。検出ロジックは plenv とおなじつもり。
plenv_perl_version() {
local dir=$PWD
[[ -n $PLENV_VERSION ]] && { echo $PLENV_VERSION; return }
while [[ -n $dir && $dir != "/" && $dir != "." ]]; do
if [[ -f "$dir/.perl-version" ]]; then
head -n 1 "$dir/.perl-version"
return
fi
dir=$dir:h
done
local plenv_home=$PLENV_HOME
[[ -z $PLENV_HOME && -n $HOME ]] && plenv_home="$HOME/.plenv"
if [[ -f "$plenv_home/version" ]]; then
head -n 1 "$plenv_home/version"
fi
}
dir=$dir:h
とかしてるので zsh でしか動かないと思う。
しかし、書くのにだいぶ時間かかった。。