add plugin to set java home per directory
This commit is contained in:
parent
3cb6a1da7e
commit
cfa828ec19
1
.zimrc
1
.zimrc
|
@ -6,6 +6,7 @@ zmodule crater2150-zsh/chroma-z
|
|||
|
||||
zmodule $ZDOTDIR/plugins/tmpsrc
|
||||
zmodule $ZDOTDIR/plugins/pyenv
|
||||
zmodule $ZDOTDIR/plugins/cs-java-home
|
||||
|
||||
zmodule $ZDOTDIR/plugins/highlight-config
|
||||
zmodule zsh-users/zsh-syntax-highlighting
|
||||
|
|
41
plugins/cs-java-home/cs-java-home.plugin.zsh
Normal file
41
plugins/cs-java-home/cs-java-home.plugin.zsh
Normal 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
|
Loading…
Reference in a new issue