mirror of https://github.com/jenv/jenv.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.4 KiB
107 lines
2.4 KiB
#!/usr/bin/env bash |
|
# |
|
# Summary: Show information about which command will be executed |
|
# |
|
# Usage: jenv doctor <command> |
|
# |
|
|
|
# Display colorized information output |
|
function cinfo() { |
|
COLOR='\033[01;32m' # bold green |
|
RESET='\033[00;00m' # normal white |
|
echo -e "${COLOR}[OK]\t$*${RESET}" |
|
} |
|
|
|
# Display colorized warning output |
|
function cwarn() { |
|
COLOR='\033[01;31m' # bold red |
|
RESET='\033[00;00m' # normal white |
|
echo -e "${COLOR}[ERROR]\t$*${RESET}" |
|
} |
|
|
|
function cfix() { |
|
COLOR='\033[01;34m' # bold red |
|
RESET='\033[00;00m' # normal white |
|
echo -e "${COLOR}\t$*${RESET}" |
|
} |
|
|
|
resolve_link() { |
|
$(type -p greadlink readlink | head -1) "$1" |
|
} |
|
|
|
set -e |
|
[ -n "$JENV_DEBUG" ] && set -x |
|
|
|
exportedValues="" |
|
|
|
exportVariable(){ |
|
exportedValues="$exportedValues:$1" |
|
export "$1"="$2" |
|
|
|
} |
|
|
|
# Provide jenv completions |
|
#if [ "$1" = "--complete" ]; then |
|
# exec jenv shims --short |
|
#fi |
|
|
|
|
|
if [[ ! -z "$JAVA_HOME" ]] ; then |
|
if [[ -z "$JENV_FORCEJAVAHOME" ]] ; then |
|
cwarn "JAVA_HOME variable already set, scripts that use it directly could not use java version set by jenv" |
|
else |
|
cinfo "JAVA_HOME variable probably set by jenv PROMPT" |
|
fi |
|
else |
|
cinfo "No JAVA_HOME set" |
|
fi |
|
|
|
JAVA_BIN=`command -v java` |
|
|
|
EXPECTED_JAVA="$JENV_ROOT/shims/java" |
|
|
|
if [ "$EXPECTED_JAVA" = "$JAVA_BIN" ] ; then |
|
cinfo "Java binaries in path are jenv shims" |
|
else |
|
cwarn "Java binary in path is not in the jenv shims." |
|
cwarn "Please check your path, or try using \`jenv add /path/to/java/home\`." |
|
cfix "PATH : $PATH" |
|
|
|
fi |
|
|
|
if [ "$JENV_LOADED" = "1" ]; then |
|
cinfo "Jenv is correctly loaded" |
|
|
|
else |
|
shell="$(basename "$SHELL")" |
|
|
|
case "$shell" in |
|
bash ) |
|
profile="$HOME/.bash_profile" |
|
;; |
|
zsh ) |
|
profile="$HOME/.zshrc" |
|
;; |
|
ksh ) |
|
profile="$HOME/.profile" |
|
;; |
|
* ) |
|
profile='your profile' |
|
;; |
|
esac |
|
|
|
cwarn "Jenv is not loaded in your $shell" |
|
cwarn 'To fix : \techo '\''eval "$(jenv init -)"'\'' >>' "$profile" |
|
fi |
|
|
|
shopt -s nullglob |
|
for plugin in "$JENV_ROOT"/plugins/*; do |
|
pluginName=$(basename "$plugin") |
|
if ! targetLink=$(resolve_link "$plugin"); then |
|
cwarn "Plugin $pluginName is not linked to a jenv installation" |
|
elif [[ ! $targetLink == "$JENV_INSTALL_DIR"* ]]; then |
|
cwarn "Plugin $pluginName is linked to older jenv installation" |
|
cfix "Please execute : jenv disable-plugin $pluginName && jenv enable-plugin $pluginName" |
|
fi |
|
done |
|
shopt -u nullglob
|
|
|