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/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
|
||||||
|
|
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