ajout de select_java_any()

This commit is contained in:
Jephté Clain 2013-11-06 09:45:34 +04:00
parent 319f87c262
commit 58f5bbf0f2
2 changed files with 43 additions and 18 deletions

View File

@ -1 +1 @@
4
5

View File

@ -324,7 +324,9 @@ function __java_select() {
export JAVA_HOME="$SELECTED_JAVA_HOME"
export JAVA="$SELECTED_JAVA"
export JAVAC="$SELECTED_JAVAC"
export PATH="$JAVA_HOME/bin:$PATH"
udelpath "$JAVA_HOME/bin"
uinspath "$JAVA_HOME/bin"
export PATH
return 0
fi
fi
@ -336,8 +338,12 @@ function __java_select_default() {
# prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, puis 14
# la version 13 n'est jamais sélectionnée automatiquement
if [ -n "$JAVA_HOME" ]; then
export JAVA_HOME # s'assurer que cette variable est exportée
export JAVA="$JAVA_HOME/bin/java"
export JAVAC="$JAVA_HOME/bin/java"
udelpath "$JAVA_HOME/bin"
uinspath "$JAVA_HOME/bin"
export PATH
return 0
fi
local vm
@ -355,27 +361,27 @@ function select_java() {
local v vms homes
case "$1" in
1.3|1.3+)
1.3|1.3+|13|13+)
for v in 13 14 5 6 7; do
__java_select "$v" "$2" && return 0
done
;;
1.4|1.4+)
1.4|1.4+|14|14+)
for v in 14 5 6 7; do
__java_select "$v" "$2" && return 0
done
;;
1.5|1.5+)
1.5|1.5+|5|5+)
for v in 5 6 7; do
__java_select "$v" "$2" && return 0
done
;;
1.6|1.6+)
1.6|1.6+|6|6+)
for v in 6 7; do
__java_select "$v" "$2" && return 0
done
;;
1.7|1.7+)
1.7|1.7+|7|7+)
for v in 7; do
__java_select "$v" "$2" && return 0
done
@ -385,7 +391,7 @@ function select_java() {
}
function select_java_exact() {
# sélectionner la version *exacte* de javac correspondant à $1
# sélectionner la version *exacte* de java correspondant à $1
# $1== 1.3|1.4|1.5|1.6|1.7 pour une correspondance exacte
# $1== 1.3+|1.4+|1.5+|1.6+|1.7+ pour une version minimum
# Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
@ -393,42 +399,42 @@ function select_java_exact() {
local v vms homes
case "$1" in
1.3)
1.3|13)
__java_select 13 && return 0
;;
1.3+)
1.3+|13+)
for v in 13 14 5 6 7; do
__java_select "$v" "$2" && return 0
done
;;
1.4)
1.4|14)
__java_select 14 && return 0
;;
1.4+)
1.4+|14+)
for v in 14 5 6 7; do
__java_select "$v" "$2" && return 0
done
;;
1.5)
1.5|5)
__java_select 5 "$2" && return 0
;;
1.5+)
1.5+|5+)
for v in 5 6 7; do
__java_select "$v" "$2" && return 0
done
;;
1.6)
1.6|6)
__java_select 6 "$2" && return 0
;;
1.6+)
1.6+|6+)
for v in 6 7; do
__java_select "$v" "$2" && return 0
done
;;
1.7)
1.7|7)
__java_select 7 "$2" && return 0
;;
1.7+)
1.7+|7+)
for v in 7; do
__java_select "$v" "$2" && return 0
done
@ -437,6 +443,25 @@ function select_java_exact() {
return 1
}
function select_java_any() {
# Sélectionner la version exacte de java correspondant aux arguments, dans
# l'ordre, jusqu'à ce qu'un argument corresponde. DEFAULT correspond à la
# valeur actuelle de JAVA_HOME, si elle est définie.
# Si aucun argument n'est défini, on assume "DEFAULT 1.5 1.6 1.7 1.4"
local v
[ -n "$*" ] || set -- DEFAULT 5 6 7 1.4
for v in "$@"; do
if [ "$v" == DEFAULT ]; then
if [ -n "$JAVA_HOME" ]; then
__java_select_default && return 0
fi
else
select_java_exact "$v" && return 0
fi
done
return 1
}
################################################################################
# Gestion des préfixes