Intégration de la branche release-11.4.0

This commit is contained in:
Jephté Clain 2025-02-27 08:44:20 +04:00
commit 3edb672410
7 changed files with 163 additions and 27 deletions

View File

@ -1,3 +1,15 @@
## Version 11.4.0 du 27/02/2025-08:44
* `7cc9629` modifs.mineures sans commentaires
* `df3986e` maj chemins registres
* `e674b31` améliorer la prise en charge de dkbuild imbriqué
* `7611760` paramètres par défaut pour dkbuild
* `056ae57` maj doc dkbuild -c
* `6f9ab14` support java 21
* `c9eaf7d` maj dkbuild.env par défaut
* `693f447` maj fichier dkbuild.env
* `6e23aae` maj config par défaut
## Version 11.3.1 du 31/12/2024-15:05 ## Version 11.3.1 du 31/12/2024-15:05
* `b9f264f` bug avec dkbuild -e * `b9f264f` bug avec dkbuild -e

View File

@ -1 +1 @@
11.3.1 11.4.0

57
dkbuild
View File

@ -77,6 +77,8 @@ $scriptname build [OPTIONS] [BUILDVARS...]
Lire un fichier de configuration au format dkbuild. Si cette option Lire un fichier de configuration au format dkbuild. Si cette option
n'est pas spécifiée, les fichiers ~/.dkbuild.env et /etc/dkbuild.env n'est pas spécifiée, les fichiers ~/.dkbuild.env et /etc/dkbuild.env
sont testés dans l'ordre et automatiquement sélectionnés s'ils existent. sont testés dans l'ordre et automatiquement sélectionnés s'ils existent.
NB: cela veut dire que si cette option est spécifiée, les fichiers
~/.dkbuild.env et /etc/dkbuild.env sont ignorés
L'ordre de priorité est le suivant: L'ordre de priorité est le suivant:
- d'abord les variables spécifiées avec --env et --arg, - d'abord les variables spécifiées avec --env et --arg,
- puis les variables définies dans ce fichier de configuration, - puis les variables définies dans ce fichier de configuration,
@ -717,6 +719,18 @@ quelle, avec la même syntaxe qu'en ligne de commande. L'intérêt de cette
commande est qu'on est assuré d'utiliser le même dkbuild que celui qui traite le commande est qu'on est assuré d'utiliser le même dkbuild que celui qui traite le
script de build courant. script de build courant.
Les variables DKBUILD_CMD_ARGS, DKBUILD_CONFIGS, DKBUILD_ENVS et DKBUILD_ARGS
peuvent être utilisées pour reprendre les valeurs spécifiées en ligne de
commande, e.g"'
dkbuild -c "${DKBUILD_CONFIGS[0]}" "${DKBUILD_CMD_ARGS[@]}"'"
La variable DKBUILD_CONFIGS contient les noms des fichiers de configuration
utilisés.
Les variables DKBUILD_ENVS et DKBUILD_ARGS sont indexées sur le nom des
variables (resp. arguments). Il est donc possible de reprendre une valeur
particulière, e.g"'
dkbuild -c "${DKBUILD_CONFIGS[0]}" -e "${DKBUILD_ENVS[myenv]}"'"
## composer -- gérer projet composer ## composer -- gérer projet composer
USAGE: composer DESTDIR [ACTION [PARAMS] [ARGS]] USAGE: composer DESTDIR [ACTION [PARAMS] [ARGS]]
@ -933,6 +947,10 @@ declare -A PROTECTED_VARS=(
[ENVIRON]=1 [ENVIRON]=1
[ARGS]=1 [ARGS]=1
[DEFAULTS]=1 [DEFAULTS]=1
[DKBUILD_CMD_ARGS]=1
[fill_DKBUILD_CONFIGS]=1 [DKBUILD_CONFIGS]=1
[fill_DKBUILD_ENVS]=1 [DKBUILD_ENVS]=1
[fill_DKBUILD_ARGS]=1 [DKBUILD_ARGS]=1
) )
SHARED_LOCALS1="local PROJDIR DKBUILD CONFIG" SHARED_LOCALS1="local PROJDIR DKBUILD CONFIG"
@ -967,6 +985,11 @@ SHARED_ARGS2=(
--arg: '$TMPARGS+=("$value_")' --arg: '$TMPARGS+=("$value_")'
) )
declare -a DKBUILD_CMD_ARGS
fill_DKBUILD_CONFIGS=; declare -a DKBUILD_CONFIGS
fill_DKBUILD_ENVS=; declare -A DKBUILD_ENVS
fill_DKBUILD_ARGS=; declare -A DKBUILD_ARGS
TFUNCTIONS=( TFUNCTIONS=(
# dkbuild # dkbuild
section note info debug section note info debug
@ -1156,28 +1179,38 @@ function ensure_projdir() {
setx CONFIG=abspath "$CONFIG" setx CONFIG=abspath "$CONFIG"
edebug "using config $CONFIG" edebug "using config $CONFIG"
else else
local config local config found
for config in ~/.dkbuild.env /etc/dkbuild.env; do for config in ~/.dkbuild.env /etc/dkbuild.env; do
if [ -f "$config" ]; then if [ -f "$config" ]; then
found=1
CONFIG="$config" CONFIG="$config"
edebug "using default config $CONFIG" edebug "using default config $CONFIG"
break break
fi fi
done done
[ -n "$found" ] || CONFIG=none
fi fi
} }
function load_dkbuild() { function load_dkbuild() {
local dkbuildenv="$PROJDIR/$(basename "$DKBUILD").env" local dkbuildenv="$PROJDIR/$(basename "$DKBUILD").env"
cd "$PROJDIR" cd "$PROJDIR"
set_defaults dkbuild
if [ -n "$CONFIG" ]; then if [ -n "$CONFIG" ]; then
edebug "loading $CONFIG" if [ "$CONFIG" != none ]; then
source "$CONFIG" edebug "loading $CONFIG"
source "$CONFIG"
fi
[ -n "$fill_DKBUILD_CONFIGS" ] && DKBUILD_CONFIGS+=("$CONFIG")
fi fi
if [ -f "$dkbuildenv" ]; then if [ -f "$dkbuildenv" ]; then
edebug "loading $dkbuildenv" edebug "loading $dkbuildenv"
source "$dkbuildenv" source "$dkbuildenv"
[ -n "$fill_DKBUILD_CONFIGS" ] && DKBUILD_CONFIGS+=("$dkbuildenv")
fi fi
edebug "loading $DKBUILD" edebug "loading $DKBUILD"
source "$DKBUILD" source "$DKBUILD"
} }
@ -1362,7 +1395,13 @@ function define_functions_env() {
# Ne spécifier la valeur que si elle n'a pas déjà été définie # Ne spécifier la valeur que si elle n'a pas déjà été définie
_ENVIRON["$name"]="$value" _ENVIRON["$name"]="$value"
ENVIRON["$name"]="$value" ENVIRON["$name"]="$value"
[ -z "${PROTECTED_VARS[$name]}" ] && _setv "export $name" "$value" if [ -z "${PROTECTED_VARS[$name]}" ]; then
_setv "export $name" "$value"
if [ -n "$fill_DKBUILD_ENVS" ]; then
DKBUILD_ENVS["$name"]="$name=$value"
DKBUILD_CMD_ARGS+=(-e "$name=$value")
fi
fi
fi fi
done done
} }
@ -1395,6 +1434,10 @@ function define_functions_env() {
if [ "${ARGS[$name]-__UNDEFINED__}" == __UNDEFINED__ ]; then if [ "${ARGS[$name]-__UNDEFINED__}" == __UNDEFINED__ ]; then
# Ne spécifier la valeur que si elle n'a pas déjà été définie # Ne spécifier la valeur que si elle n'a pas déjà été définie
ARGS["$name"]="$value" ARGS["$name"]="$value"
if [ -n "$fill_DKBUILD_ARGS" ]; then
DKBUILD_ARGS["$name"]="$name=$value"
DKBUILD_CMD_ARGS+=(--arg "$name=$value")
fi
fi fi
done done
} }
@ -1604,10 +1647,10 @@ function resolve_dists_profiles() {
reset_functions reset_functions
define_functions_env define_functions_env
setenv "${TMPENVIRON[@]}" fill_DKBUILD_ENVS=1 setenv "${TMPENVIRON[@]}"
setarg "${TMPARGS[@]}" fill_DKBUILD_ARGS=1 setarg "${TMPARGS[@]}"
setarg "$@" setarg "$@"
load_dkbuild fill_DKBUILD_CONFIGS=1 load_dkbuild
} }
function foreach_dists_profiles() { function foreach_dists_profiles() {

4
lib/default/dkbuild Normal file
View File

@ -0,0 +1,4 @@
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
# Profil par défaut
#DKBUILD_PROFILE=prod

View File

@ -1,11 +1,19 @@
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
default_profile "${DKBUILD_PROFILE:-prod}" default_profile "${DKBUILD_PROFILE:-prod}"
# Source des paquets et proxy
#setenv APT_PROXY=http://aptcache.devel.self:3142
#setenv APT_MIRROR=default
#setenv SEC_MIRROR=default
# Timezone du serveur
#setenv TIMEZONE=Indian/Reunion
if profile jclain; then if profile jclain; then
setenv REGISTRY=docker.jclain.fr setenv REGISTRY=docker.jclain.fr
setenv PRIVAREG=docker.jclain.fr setenv PRIVAREG=docker.jclain.fr
elif profile prod test; then elif profile prod test; then
setenv REGISTRY=pubdocker.univ-reunion.fr setenv REGISTRY=pubdocker.univ-reunion.fr/rununiv
setenv PRIVAREG=pridocker.univ-reunion.fr setenv PRIVAREG=pridocker.univ-reunion.fr
host_mappings=( host_mappings=(
pridocker.univ-reunion.fr:10.85.1.56 pridocker.univ-reunion.fr:10.85.1.56
@ -14,7 +22,10 @@ elif profile prod test; then
git.univ-reunion.fr:10.85.1.55 git.univ-reunion.fr:10.85.1.55
) )
default docker host-mappings="${host_mappings[*]}" default docker host-mappings="${host_mappings[*]}"
elif profile dist; then
setenv REGISTRY=pubdocker.univ-reunion.fr/dist
setenv PRIVAREG=pridocker.univ-reunion.fr
elif profile devel; then elif profile devel; then
setenv REGISTRY=docker.devel.self setenv REGISTRY=docker.devel.self/rununiv
setenv PRIVAREG=docker.devel.self setenv PRIVAREG=docker.devel.self
fi fi

View File

@ -0,0 +1,8 @@
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
if runb; then
qvals dkbuild -c "${DKBUILD_CONFIGS[0]}" "${DKBUILD_CMD_ARGS[@]}"
fi
# pas de build automatique
AUTOBUILD=

View File

@ -16,6 +16,7 @@ JAVA_VMS7=(); JAVA_HOMES7=()
JAVA_VMS8=(); JAVA_HOMES8=() JAVA_VMS8=(); JAVA_HOMES8=()
JAVA_VMS11=(); JAVA_HOMES11=() JAVA_VMS11=(); JAVA_HOMES11=()
JAVA_VMS17=(); JAVA_HOMES17=() JAVA_VMS17=(); JAVA_HOMES17=()
JAVA_VMS21=(); JAVA_HOMES21=()
# versions locales 32 bits # versions locales 32 bits
JAVA32_VMS1_3=(); JAVA32_HOMES1_3=() JAVA32_VMS1_3=(); JAVA32_HOMES1_3=()
JAVA32_VMS1_4=(); JAVA32_HOMES1_4=() JAVA32_VMS1_4=(); JAVA32_HOMES1_4=()
@ -25,6 +26,7 @@ JAVA32_VMS7=(); JAVA32_HOMES7=()
JAVA32_VMS8=(); JAVA32_HOMES8=() JAVA32_VMS8=(); JAVA32_HOMES8=()
JAVA32_VMS11=(); JAVA32_HOMES11=() JAVA32_VMS11=(); JAVA32_HOMES11=()
JAVA32_VMS17=(); JAVA32_HOMES17=() JAVA32_VMS17=(); JAVA32_HOMES17=()
JAVA32_VMS21=(); JAVA32_HOMES21=()
# versions locales 64 bits # versions locales 64 bits
JAVA64_VMS5=(); JAVA64_HOMES5=() JAVA64_VMS5=(); JAVA64_HOMES5=()
JAVA64_VMS6=(); JAVA64_HOMES6=() JAVA64_VMS6=(); JAVA64_HOMES6=()
@ -32,6 +34,7 @@ JAVA64_VMS7=(); JAVA64_HOMES7=()
JAVA64_VMS8=(); JAVA64_HOMES8=() JAVA64_VMS8=(); JAVA64_HOMES8=()
JAVA64_VMS11=(); JAVA64_HOMES11=() JAVA64_VMS11=(); JAVA64_HOMES11=()
JAVA64_VMS17=(); JAVA64_HOMES17=() JAVA64_VMS17=(); JAVA64_HOMES17=()
JAVA64_VMS21=(); JAVA64_HOMES21=()
# version sélectionnée # version sélectionnée
SELECTED_JAVA_VM=; SELECTED_JAVA_HOME= SELECTED_JAVA_VM=; SELECTED_JAVA_HOME=
SELECTED_JAVA=; SELECTED_JAVAC= SELECTED_JAVA=; SELECTED_JAVAC=
@ -112,6 +115,14 @@ function __java_compute_vms() {
__java_add HOMES8 "$HOME/opt/jvm64/$vm" 64 __java_add HOMES8 "$HOME/opt/jvm64/$vm" 64
fi fi
done done
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk11)"
for vm in "${vms[@]}"; do
v="${vm#jdk}"
if [ "$v" == 11 ]; then
__java_add VMS11 "$vm" 64
__java_add HOMES11 "$HOME/opt/jvm64/$vm" 64
fi
done
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk17)" array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk17)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
v="${vm#jdk}" v="${vm#jdk}"
@ -120,12 +131,12 @@ function __java_compute_vms() {
__java_add HOMES17 "$HOME/opt/jvm64/$vm" 64 __java_add HOMES17 "$HOME/opt/jvm64/$vm" 64
fi fi
done done
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk11)" array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk21)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
v="${vm#jdk}" v="${vm#jdk}"
if [ "$v" == 11 ]; then if [ "$v" == 21 ]; then
__java_add VMS11 "$vm" 64 __java_add VMS21 "$vm" 64
__java_add HOMES11 "$HOME/opt/jvm64/$vm" 64 __java_add HOMES21 "$HOME/opt/jvm64/$vm" 64
fi fi
done done
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk1.5.*" | LANG=C sort -r)" array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk1.5.*" | LANG=C sort -r)"
@ -158,6 +169,11 @@ function __java_compute_vms() {
__java_add VMS17 "$vm" 64 __java_add VMS17 "$vm" 64
__java_add HOMES17 "$HOME/opt/jvm64/$vm" 64 __java_add HOMES17 "$HOME/opt/jvm64/$vm" 64
done done
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk-21.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do
__java_add VMS21 "$vm" 64
__java_add HOMES21 "$HOME/opt/jvm64/$vm" 64
done
# Puis chercher dans les JVMs installées manuellement dans ~/opt # Puis chercher dans les JVMs installées manuellement dans ~/opt
array_from_lines vms "$(list_dirs "$HOME/opt" "sun-jdk-*")" array_from_lines vms "$(list_dirs "$HOME/opt" "sun-jdk-*")"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
@ -195,6 +211,14 @@ function __java_compute_vms() {
__java_add HOMES17 "$HOME/opt/$vm" __java_add HOMES17 "$HOME/opt/$vm"
fi fi
done done
array_from_lines vms "$(list_dirs "$HOME/opt" jdk21)"
for vm in "${vms[@]}"; do
v="${vm#jdk}"
if [ "$v" == 21 ]; then
__java_add VMS21 "$vm"
__java_add HOMES21 "$HOME/opt/$vm"
fi
done
array_from_lines vms "$(list_dirs "$HOME/opt" "j2sdk1.4.2*" | LANG=C sort -r)" array_from_lines vms "$(list_dirs "$HOME/opt" "j2sdk1.4.2*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
__java_add VMS1_4 "$vm" __java_add VMS1_4 "$vm"
@ -230,6 +254,11 @@ function __java_compute_vms() {
__java_add VMS17 "$vm" __java_add VMS17 "$vm"
__java_add HOMES17 "$HOME/opt/$vm" __java_add HOMES17 "$HOME/opt/$vm"
done done
array_from_lines vms "$(list_dirs "$HOME/opt" "jdk-21.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do
__java_add VMS21 "$vm"
__java_add HOMES21 "$HOME/opt/$vm"
done
# Puis chercher dans les JVMs installées manuellement dans /opt # Puis chercher dans les JVMs installées manuellement dans /opt
array_from_lines vms "$(list_dirs "/opt" "sun-jdk-*")" array_from_lines vms "$(list_dirs "/opt" "sun-jdk-*")"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
@ -267,6 +296,14 @@ function __java_compute_vms() {
__java_add HOMES17 "/opt/$vm" __java_add HOMES17 "/opt/$vm"
fi fi
done done
array_from_lines vms "$(list_dirs "/opt" jdk21)"
for vm in "${vms[@]}"; do
v="${vm#jdk}"
if [ "$v" == 21 ]; then
__java_add VMS21 "$vm"
__java_add HOMES21 "/opt/$vm"
fi
done
array_from_lines vms "$(list_dirs "/opt" "j2sdk1.4.2*" | LANG=C sort -r)" array_from_lines vms "$(list_dirs "/opt" "j2sdk1.4.2*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
__java_add VMS1_4 "$vm" __java_add VMS1_4 "$vm"
@ -302,6 +339,11 @@ function __java_compute_vms() {
__java_add VMS17 "$vm" __java_add VMS17 "$vm"
__java_add HOMES17 "/opt/$vm" __java_add HOMES17 "/opt/$vm"
done done
array_from_lines vms "$(list_dirs "/opt" "jdk-21.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do
__java_add VMS21 "$vm"
__java_add HOMES21 "/opt/$vm"
done
# Puis chercher dans les JVMs installées par le système dans # Puis chercher dans les JVMs installées par le système dans
# /usr/lib/jvm # /usr/lib/jvm
if check_sysinfos -d gentoo; then if check_sysinfos -d gentoo; then
@ -357,6 +399,9 @@ function __java_compute_vms() {
elif [ "$v" == 17 ]; then elif [ "$v" == 17 ]; then
__java_add VMS17 "$vm" __java_add VMS17 "$vm"
__java_add HOMES17 "/usr/lib/jvm/$vm" __java_add HOMES17 "/usr/lib/jvm/$vm"
elif [ "$v" == 21 ]; then
__java_add VMS21 "$vm"
__java_add HOMES21 "/usr/lib/jvm/$vm"
fi fi
done done
if [ -d /usr/lib/j2sdk1.4-sun ]; then if [ -d /usr/lib/j2sdk1.4-sun ]; then
@ -398,7 +443,7 @@ function __java_compute_vms() {
function __java_dump_vms() { function __java_dump_vms() {
local v b i vms homes local v b i vms homes
for v in 1_3 1_4 5 6 7 8 11 17; do for v in 1_3 1_4 5 6 7 8 11 17 21; do
for b in "" 32 64; do for b in "" 32 64; do
vms="JAVA${b}_VMS${v}[@]"; vms=("${!vms}") vms="JAVA${b}_VMS${v}[@]"; vms=("${!vms}")
homes="JAVA${b}_HOMES${v}[@]"; homes=("${!homes}") homes="JAVA${b}_HOMES${v}[@]"; homes=("${!homes}")
@ -429,7 +474,7 @@ function __java_select_vms() {
} }
function __java_select() { function __java_select() {
# Sélectionner la version de java $1 (qui peut être 1_3, 1_4, 5, 6, 7, 8, 11, 17) # Sélectionner la version de java $1 (qui peut être 1_3, 1_4, 5, 6, 7, 8, 11, 17, 21)
# Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
# version 32bits ou 64 bits. Sinon, la version sélectionnée peut être 32bits # version 32bits ou 64 bits. Sinon, la version sélectionnée peut être 32bits
# ou 64bits selon ce qui est disponible. # ou 64bits selon ce qui est disponible.
@ -473,7 +518,7 @@ function __java_select() {
function __java_select_default() { function __java_select_default() {
# Sélectionner la version de java par défaut. Si JAVA_HOME est défini, # Sélectionner la version de java par défaut. Si JAVA_HOME est défini,
# prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, 8, 11, 17 puis 1_4 # prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, 8, 11, 17, 21 puis 1_4
# la version 1_3 n'est jamais sélectionnée automatiquement # la version 1_3 n'est jamais sélectionnée automatiquement
if [ -n "$JAVA_HOME" ]; then if [ -n "$JAVA_HOME" ]; then
export JAVA_HOME # s'assurer que cette variable est exportée export JAVA_HOME # s'assurer que cette variable est exportée
@ -485,7 +530,7 @@ function __java_select_default() {
return 0 return 0
fi fi
local vm local vm
for vm in 5 6 7 8 11 17 1_4; do for vm in 5 6 7 8 11 17 21 1_4; do
__java_select "$vm" && return 0 __java_select "$vm" && return 0
done done
return 1 return 1
@ -493,7 +538,7 @@ function __java_select_default() {
function select_java() { function select_java() {
# sélectionner la version *minimum* de java correspondant à $1 # sélectionner la version *minimum* de java correspondant à $1
# $1 == 1.3|1.3+|1.4|1.4+|1.5|1.5+|1.6|1.6+|1.7|1.7+|1.8|1.8+|11|11+|17|17+ # $1 == 1.3|1.3+|1.4|1.4+|1.5|1.5+|1.6|1.6+|1.7|1.7+|1.8|1.8+|11|11+|17|17+|21|21+
# Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
# version 32bits ou 64 bits # version 32bits ou 64 bits
local v vms homes local v vms homes
@ -530,12 +575,17 @@ function select_java() {
done done
;; ;;
11|11+) 11|11+)
for v in 11 17; do for v in 11 17 21; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
17|17+) 17|17+)
for v in 17; do for v in 17 21; do
__java_select "$v" "$2" && return 0
done
;;
21|21+)
for v in 21; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
@ -545,8 +595,8 @@ function select_java() {
function select_java_exact() { function select_java_exact() {
# sélectionner la version *exacte* de java correspondant à $1 # sélectionner la version *exacte* de java correspondant à $1
# $1 == 1.3|1.4|1.5|1.6|1.7|1.8|11|17 pour une correspondance exacte # $1 == 1.3|1.4|1.5|1.6|1.7|1.8|11|17|21 pour une correspondance exacte
# $1 == 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+|11+|17+ pour une version minimum # $1 == 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+|11+|17+|21+ pour une version minimum
# Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
# version 32bits ou 64 bits # version 32bits ou 64 bits
local v vms homes local v vms homes
@ -604,7 +654,7 @@ function select_java_exact() {
__java_select 11 "$2" && return 0 __java_select 11 "$2" && return 0
;; ;;
11+) 11+)
for v in 11 17; do for v in 11 17 21; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
@ -612,7 +662,15 @@ function select_java_exact() {
__java_select 17 "$2" && return 0 __java_select 17 "$2" && return 0
;; ;;
17+) 17+)
for v in 17; do for v in 17 21; do
__java_select "$v" "$2" && return 0
done
;;
21)
__java_select 21 "$2" && return 0
;;
21+)
for v in 21; do
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
@ -624,9 +682,9 @@ function select_java_any() {
# Sélectionner la version exacte de java correspondant aux arguments, dans # Sélectionner la version exacte de java correspondant aux arguments, dans
# l'ordre, jusqu'à ce qu'un argument corresponde. DEFAULT correspond à la # l'ordre, jusqu'à ce qu'un argument corresponde. DEFAULT correspond à la
# valeur actuelle de JAVA_HOME, si elle est définie. # valeur actuelle de JAVA_HOME, si elle est définie.
# Si aucun argument n'est défini, on assume "DEFAULT 5 6 7 8 11 17 1.4" # Si aucun argument n'est défini, on assume "DEFAULT 5 6 7 8 11 17 21 1.4"
local v local v
[ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 17 1.4 [ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 17 21 1.4
for v in "$@"; do for v in "$@"; do
if [ "$v" == DEFAULT ]; then if [ "$v" == DEFAULT ]; then
if [ -n "$JAVA_HOME" ]; then if [ -n "$JAVA_HOME" ]; then