add plugin to set java home per directory

This commit is contained in:
crater2150 2024-08-28 17:55:49 +02:00
parent 3cb6a1da7e
commit cfa828ec19
2 changed files with 42 additions and 0 deletions

1
.zimrc
View file

@ -6,6 +6,7 @@ zmodule crater2150-zsh/chroma-z
zmodule $ZDOTDIR/plugins/tmpsrc zmodule $ZDOTDIR/plugins/tmpsrc
zmodule $ZDOTDIR/plugins/pyenv zmodule $ZDOTDIR/plugins/pyenv
zmodule $ZDOTDIR/plugins/cs-java-home
zmodule $ZDOTDIR/plugins/highlight-config zmodule $ZDOTDIR/plugins/highlight-config
zmodule zsh-users/zsh-syntax-highlighting zmodule zsh-users/zsh-syntax-highlighting

View file

@ -0,0 +1,41 @@
typeset -a chpwd_functions __chromaz_extra_left
SYSTEM_JAVA_HOME=${CS_FORMER_JAVA_HOME:-$JAVA_HOME}
local cs_jvm_id
local cs_java_home
remove-from-path() {
for elem in $@; do
path=("${(@)path:#$elem}")
done
}
cs-set-java-home() {
local dir=${1:-${PWD:a}}
if [[ $dir == / ]]; then
export JAVA_HOME=${SYSTEM_JAVA_HOME}
remove-from-path $cs_java_home/bin
cs_jvm_id=
return
fi
if [[ -e $dir/.jvm ]]; then
cs_jvm_id=$(<$dir/.jvm)
#echo "Setting Java version to ${cs_jvm_id}"
cs_java_home=$(cs java-home --jvm ${cs_jvm_id})
path=( $cs_java_home/bin $path )
export JAVA_HOME=${cs_java_home}
else
cs-set-java-home ${dir:h}
fi
#
}
cs-current-java() {
echo ${cs_jvm_id:+JVM: }${cs_jvm_id}
}
chpwd_functions+=cs-set-java-home
__chromaz_extra_left+=cs-current-java
cs-set-java-home