Intégration de la branche release-11.0.0

This commit is contained in:
Jephté Clain 2023-09-05 14:29:29 +04:00
commit 1b7b2744ba
11 changed files with 170 additions and 37 deletions

View File

@ -1,3 +1,13 @@
## Version 11.0.0 du 05/09/2023-14:29
* `ddfbc00` maj des images par défaut dk et dkbuild
* `e33f2a5` ajout registry privé
* `f245e17` image par défaut en prod
* `efe31b8` support java17
* `5cb4112` dkbuild: bug profil unitaire
* `f424f41` dkbuild: -u n'implique plus -b
* `e5a1473` dkbuild: implémenter -u
## Version 10.0.0 du 12/08/2023-21:06 ## Version 10.0.0 du 12/08/2023-21:06
* `bfdf9b5` support système sans python2 * `bfdf9b5` support système sans python2

View File

@ -1 +1 @@
10.0.0 11.0.0

25
dk
View File

@ -2414,6 +2414,20 @@ fi
[ -n "$COMPOSE_V1" ] && DOCKER_COMPOSE=(docker-compose) || DOCKER_COMPOSE=(docker compose) [ -n "$COMPOSE_V1" ] && DOCKER_COMPOSE=(docker-compose) || DOCKER_COMPOSE=(docker compose)
DEFAULT_PROFILE=devel DEFAULT_PROFILE=devel
case "$PROFILE" in
jclain)
REGISTRY=docker.jclain.fr
PRIVAREG=docker.jclain.fr
;;
devel)
REGISTRY=docker.devel.self
PRIVAREG=docker.devel.self
;;
prod|test|*)
REGISTRY=pubdocker.univ-reunion.fr
PRIVAREG=pridocker.univ-reunion.fr
;;
esac
PROFILE= PROFILE=
DM_ALIASES=() DM_ALIASES=()
DM_PROFILES=() DM_PROFILES=()
@ -2421,13 +2435,14 @@ CLUSTERDIRS=()
DEFAULT_DEVEL_SRCDIR="$HOME/wop" DEFAULT_DEVEL_SRCDIR="$HOME/wop"
COMPOSER_DEVEL_SRCDIR="$HOME/wop/php" COMPOSER_DEVEL_SRCDIR="$HOME/wop/php"
MAVEN_DEVEL_SRCDIR="$HOME/wop/sn" MAVEN_DEVEL_SRCDIR="$HOME/wop/sn"
DEFAULT_COMPOSER_IMAGE=docker.univ-reunion.fr/image/phpbuilder DEFAULT_COMPOSER_IMAGE="$REGISTRY/image/phpbuilder:d11"
DEFAULT_MAVEN_IMAGE=docker.univ-reunion.fr/image/javabuilder DEFAULT_MAVEN_IMAGE="$REGISTRY/image/javabuilder:d11"
DEFAULT_HOST_MAPPINGS=() DEFAULT_HOST_MAPPINGS=()
prod_HOST_MAPPINGS=( prod_HOST_MAPPINGS=(
docker.univ-reunion.fr:10.82.70.154 pridocker.univ-reunion.fr:10.85.1.56
repos.univ-reunion.fr:10.82.70.246 pubdocker.univ-reunion.fr:10.85.1.57
git.univ-reunion.fr:10.82.70.247 repos.univ-reunion.fr:10.85.1.57
git.univ-reunion.fr:10.85.1.55
) )
test_HOST_MAPPINGS=("${prod_HOST_MAPPINGS[@]}") test_HOST_MAPPINGS=("${prod_HOST_MAPPINGS[@]}")
set_defaults dk set_defaults dk

56
dkbuild
View File

@ -9,10 +9,10 @@ TEMPLATEDIR="$scriptdir/lib/dkbuild/templates"
[ -n "$COMPOSE_V1" ] && DOCKER_COMPOSE=(docker-compose) || DOCKER_COMPOSE=(docker compose) [ -n "$COMPOSE_V1" ] && DOCKER_COMPOSE=(docker-compose) || DOCKER_COMPOSE=(docker compose)
function get_default_phpbuilder_image() { function get_default_phpbuilder_image() {
echo "${REGISTRY:-docker.univ-reunion.fr}/image/phpbuilder:${DIST:-d11}" echo "${REGISTRY:-pubdocker.univ-reunion.fr}/image/phpbuilder:${DIST:-d11}"
} }
function get_default_javabuilder_image() { function get_default_javabuilder_image() {
echo "${REGISTRY:-docker.univ-reunion.fr}/image/javabuilder:d11" echo "${REGISTRY:-pubdocker.univ-reunion.fr}/image/javabuilder:d11"
} }
##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -111,10 +111,18 @@ $scriptname build [OPTIONS] [BUILDVARS...]
Spécifier la valeur d'un argument de build. Cette valeur remplace la Spécifier la valeur d'un argument de build. Cette valeur remplace la
valeur par défaut spécifiée dans le fichier de build. valeur par défaut spécifiée dans le fichier de build.
-u, --clean-update
Avant de faire le build, faire un clean, suivi de git pull. C'est la
méthode préférée pour mettre à jour le dépôt s'il y a des fichiers
synchronisé avec la commande 'copy', parce que sinon les fichiers
sources (mis à jour par git pull) sont désynchronisés d'avec les
fichiers destination.
--clone-src-only --clone-src-only
Ne faire que cloner les dépôts sources Ne faire que cloner les dépôts sources mentionnés avec la commande
'checkout'
--update-src-only --update-src-only
Ne faire que mettre à jour les dépôts sources Ne faire que mettre à jour les dépôts sources mentionnés avec la
commande 'checkout'
--update-src --update-src
Avec la commande 'checkout', mettre à jour les dépôts avant de faire le Avec la commande 'checkout', mettre à jour les dépôts avant de faire le
build. C'est la valeur par défaut. build. C'est la valeur par défaut.
@ -125,7 +133,8 @@ $scriptname build [OPTIONS] [BUILDVARS...]
Ne pas mettre à jour le dépôt, préférer la synchronisation depuis la Ne pas mettre à jour le dépôt, préférer la synchronisation depuis la
version de développement d'un dépôt version de développement d'un dépôt
-s, --sync-src -s, --sync-src
Avec la commande 'copy', effectuer la mise à jour des fichiers Avec la commande 'copy', effectuer la mise à jour des fichiers. C'est la
valeur par défaut si on construit l'image
--no-sync-src --no-sync-src
Ne pas mettre à jour les fichiers. La commande 'copy' devient un NOP si Ne pas mettre à jour les fichiers. La commande 'copy' devient un NOP si
le fichier destination existe. le fichier destination existe.
@ -133,7 +142,7 @@ $scriptname build [OPTIONS] [BUILDVARS...]
Construire les images Construire les images
--no-cache --no-cache
Ne pas utiliser le cache lors du build Ne pas utiliser le cache lors du build
-u, --pull-image -U, --pull-image
Essayer de récupérer une version plus récente de l'image source Essayer de récupérer une version plus récente de l'image source
-p, --push-image -p, --push-image
Pousser les images construites vers la registry Pousser les images construites vers la registry
@ -1418,12 +1427,14 @@ function resolve_dists_profiles() {
} }
load_dkbuild load_dkbuild
local MANUAL_SETPROFILES=
if [ -z "$SETPROFILES_DONE" -a -n "$PROFILE" ]; then if [ -z "$SETPROFILES_DONE" -a -n "$PROFILE" ]; then
# Si l'utilisateur spécifie un profil mais qu'aucun profil n'a été # Si l'utilisateur spécifie un profil mais qu'aucun profil n'a été
# défini dans la configuration, considérer que c'est cet unique profil # défini dans la configuration, considérer que c'est cet unique profil
# qui a été défini # qui a été défini
SETPROFILES=("$PROFILE") SETPROFILES=("$PROFILE")
SETPROFILES_DONE=1 SETPROFILES_DONE=1
MANUAL_SETPROFILES=1
fi fi
## ensuite vérifier si on est dans la bonne distribution ## ensuite vérifier si on est dans la bonne distribution
@ -1490,6 +1501,10 @@ function resolve_dists_profiles() {
} }
load_dkbuild load_dkbuild
if [ -n "$MANUAL_SETPROFILES" ]; then
setprofiles "$PROFILE"
fi
## Si pas de distribution ou de profil, remplacer par valeur vide ## Si pas de distribution ou de profil, remplacer par valeur vide
if [ ${#DISTS[*]} -eq 0 ]; then if [ ${#DISTS[*]} -eq 0 ]; then
SETDISTS=("") SETDISTS=("")
@ -2771,12 +2786,16 @@ function build_action() {
eval "$SHARED_LOCALS1; $SHARED_LOCALS2" eval "$SHARED_LOCALS1; $SHARED_LOCALS2"
local action=build local action=build
local machine local machine
local clean_update clean_opt=-X
local clone_src_only update_src_only update_src sync_src local clone_src_only update_src_only update_src sync_src
local build no_cache pull_image local build no_cache pull_image
local push_image local push_image
local -a args; args=( local -a args; args=(
"${SHARED_ARGS1[@]}" "${SHARED_ARGS2[@]}" "${SHARED_ARGS1[@]}" "${SHARED_ARGS2[@]}"
-m:,--machine: machine= -m:,--machine: machine=
-u,--clean-update clean_update=1
-X,--clean-ignored clean_opt=-X
-x,--clean-untracked clean_opt=-x
--clone-src-only clone_src_only=1 --clone-src-only clone_src_only=1
--update-src-only update_src_only=1 --update-src-only update_src_only=1
--update-src update_src=1 --update-src update_src=1
@ -2786,7 +2805,7 @@ function build_action() {
--no-sync-src sync_src=no --no-sync-src sync_src=no
-b,--build build=1 -b,--build build=1
--no-cache no_cache=1 --no-cache no_cache=1
-u,--pull-image pull_image=1 -U,--pull-image pull_image=1
-p,--push-image push_image=1 -p,--push-image push_image=1
) )
parse_args "$@"; set -- "${args[@]}" parse_args "$@"; set -- "${args[@]}"
@ -2799,7 +2818,7 @@ function build_action() {
action=build action=build
[ -n "$update_src" ] || update_src=1 [ -n "$update_src" ] || update_src=1
[ "$update_src" == no ] && update_src= [ "$update_src" == no ] && update_src=
if [ -z "$sync_src" -a -z "$build" -a -z "$push_image" ]; then if [ -z "$clean_update" -a -z "$sync_src" -a -z "$build" -a -z "$push_image" ]; then
sync_src=1 sync_src=1
build=1 build=1
fi fi
@ -2815,6 +2834,17 @@ function build_action() {
setarg "${TMPARGS[@]}" setarg "${TMPARGS[@]}"
setarg "$@" setarg "$@"
if [ -n "$clean_update" ]; then
edebug "clean"
_clean_git_clean -f || die
edebug "update"
git pull || die
edebug "sync"
[ -n "$build" ] && sync_src=1
fi
case "$action" in case "$action" in
clone_src) clone_src)
die "Pas encore implémenté" #XXX die "Pas encore implémenté" #XXX
@ -2870,7 +2900,7 @@ function _build_after() {
## clean ## clean
function _clean_git_clean() { function _clean_git_clean() {
LANG=C git clean -d $opt "$@" | LANG=C git clean -d $clean_opt "$@" |
grep -vE '^(Would skip|Skipping) ' | grep -vE '^(Would skip|Skipping) ' |
sed -r 's/^Would remove //' sed -r 's/^Would remove //'
} }
@ -2882,16 +2912,16 @@ function _clean_git_status() {
function clean_action() { function clean_action() {
eval "$SHARED_LOCALS1" eval "$SHARED_LOCALS1"
local opt=-X all= local clean_opt=-X all=
local -a args; args=( local -a args; args=(
"${SHARED_ARGS1[@]}" "${SHARED_ARGS1[@]}"
-X,--ignored opt=-X -X,--ignored clean_opt=-X
-x,--untracked opt=-x -x,--untracked clean_opt=-x
-a,--all all=1 -a,--all all=1
) )
parse_args "$@"; set -- "${args[@]}" parse_args "$@"; set -- "${args[@]}"
[ -n "$all" ] && opt=-x [ -n "$all" ] && clean_opt=-x
edebug "clean_action" edebug "clean_action"
ensure_projdir ensure_projdir

View File

@ -20,10 +20,27 @@
#MAVEN_DEVEL_SRCDIR="$HOME/wop/sn" #MAVEN_DEVEL_SRCDIR="$HOME/wop/sn"
# Image à utiliser pour les builds # Image à utiliser pour les builds
#DEFAULT_COMPOSER_IMAGE=docker.univ-reunion.fr/image/phpbuilder:d10 #DEFAULT_COMPOSER_IMAGE=pubdocker.univ-reunion.fr/image/phpbuilder:d11
#DEFAULT_MAVEN_IMAGE=docker.univ-reunion.fr/image/javabuilder:d10 #DEFAULT_MAVEN_IMAGE=pubdocker.univ-reunion.fr/image/javabuilder:d11
# Mappings d'hôtes à activer pour les builds à base d'image # Mappings d'hôtes à activer pour les builds à base d'image
#DEFAULT_HOST_MAPPINGS=() #DEFAULT_HOST_MAPPINGS=()
#prod_HOST_MAPPINGS=(docker.univ-reunion.fr:10.82.70.154 repos.univ-reunion.fr:10.82.70.246 git.univ-reunion.fr:10.82.70.247) #prod_HOST_MAPPINGS=(pridocker.univ-reunion.fr:10.85.1.56 pubdocker.univ-reunion.fr:10.85.1.57 repos.univ-reunion.fr:10.85.1.57 git.univ-reunion.fr:10.85.1.55)
#test_HOST_MAPPINGS=("${prod_HOST_MAPPINGS}") #test_HOST_MAPPINGS=("${prod_HOST_MAPPINGS}")
#case "$PROFILE" in
#jclain)
# REGISTRY=docker.jclain.fr
# PRIVAREG=docker.jclain.fr
# ;;
#devel)
# REGISTRY=docker.devel.self
# PRIVAREG=docker.devel.self
# ;;
#prod|test|*)
# REGISTRY=pubdocker.univ-reunion.fr
# PRIVAREG=pridocker.univ-reunion.fr
# ;;
#esac
#: ${DEFAULT_COMPOSER_IMAGE:=$REGISTRY/image/phpbuilder:d11}
#: ${DEFAULT_MAVEN_IMAGE:=$REGISTRY/image/javabuilder:d11}

View File

@ -1,8 +1,11 @@
# -*- 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
if profile jclain; then if profile jclain; then
setenv REGISTRY=docker.jclain.fr setenv REGISTRY=docker.jclain.fr
setenv PRIVAREG=docker.jclain.fr
elif profile prod test; then elif profile prod test; then
setenv REGISTRY=docker.univ-reunion.fr setenv REGISTRY=pubdocker.univ-reunion.fr
setenv PRIVAREG=pridocker.univ-reunion.fr
else else
setenv REGISTRY=docker.devel.self setenv REGISTRY=docker.devel.self
setenv PRIVAREG=docker.devel.self
fi fi

View File

@ -1,3 +1,3 @@
# -*- 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
setenv REGISTRY=docker.univ-reunion.fr setenv REGISTRY=pubdocker.univ-reunion.fr
setenv IMAGE=$REGISTRY/GROUP/NAME setenv IMAGE=$REGISTRY/GROUP/NAME

View File

@ -1,4 +1,4 @@
# -*- 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
setenv REGISTRY=docker.univ-reunion.fr setenv REGISTRY=pubdocker.univ-reunion.fr
setenv IMAGE=$REGISTRY/GROUP/NAME setenv IMAGE=$REGISTRY/GROUP/NAME
setenv DIST=d11 setenv DIST=d11

View File

@ -1,4 +1,4 @@
# -*- 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
setenv REGISTRY=docker.univ-reunion.fr setenv REGISTRY=pubdocker.univ-reunion.fr
setenv IMAGE=$REGISTRY/GROUP/NAME setenv IMAGE=$REGISTRY/GROUP/NAME
setenv DIST=d11 setenv DIST=d11

View File

@ -1,9 +1,9 @@
# -*- 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
setenv REGISTRY=docker.univ-reunion.fr setenv REGISTRY=pubdocker.univ-reunion.fr
setenv IMAGE=$REGISTRY/group/name setenv IMAGE=$REGISTRY/group/name
info "IMAGE=$IMAGE" info "IMAGE=$IMAGE"
if [ "$REGISTRY" == docker.univ-reunion.fr ]; then if [ "$REGISTRY" == pubdocker.univ-reunion.fr ]; then
note "\ note "\
Essayer de relancer avec Essayer de relancer avec
$(qvals dkbuild -j "$(relpath "$DKBUILD")" -c registry.env) $(qvals dkbuild -j "$(relpath "$DKBUILD")" -c registry.env)

View File

@ -15,6 +15,7 @@ JAVA_VMS6=(); JAVA_HOMES6=()
JAVA_VMS7=(); JAVA_HOMES7=() JAVA_VMS7=(); JAVA_HOMES7=()
JAVA_VMS8=(); JAVA_HOMES8=() JAVA_VMS8=(); JAVA_HOMES8=()
JAVA_VMS11=(); JAVA_HOMES11=() JAVA_VMS11=(); JAVA_HOMES11=()
JAVA_VMS17=(); JAVA_HOMES17=()
# 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=()
@ -23,12 +24,14 @@ JAVA32_VMS6=(); JAVA32_HOMES6=()
JAVA32_VMS7=(); JAVA32_HOMES7=() JAVA32_VMS7=(); JAVA32_HOMES7=()
JAVA32_VMS8=(); JAVA32_HOMES8=() JAVA32_VMS8=(); JAVA32_HOMES8=()
JAVA32_VMS11=(); JAVA32_HOMES11=() JAVA32_VMS11=(); JAVA32_HOMES11=()
JAVA32_VMS17=(); JAVA32_HOMES17=()
# versions locales 64 bits # versions locales 64 bits
JAVA64_VMS5=(); JAVA64_HOMES5=() JAVA64_VMS5=(); JAVA64_HOMES5=()
JAVA64_VMS6=(); JAVA64_HOMES6=() JAVA64_VMS6=(); JAVA64_HOMES6=()
JAVA64_VMS7=(); JAVA64_HOMES7=() JAVA64_VMS7=(); JAVA64_HOMES7=()
JAVA64_VMS8=(); JAVA64_HOMES8=() JAVA64_VMS8=(); JAVA64_HOMES8=()
JAVA64_VMS11=(); JAVA64_HOMES11=() JAVA64_VMS11=(); JAVA64_HOMES11=()
JAVA64_VMS17=(); JAVA64_HOMES17=()
# 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=
@ -109,6 +112,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" jdk17)"
for vm in "${vms[@]}"; do
v="${vm#jdk}"
if [ "$v" == 17 ]; then
__java_add VMS17 "$vm" 64
__java_add HOMES17 "$HOME/opt/jvm64/$vm" 64
fi
done
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk11)" array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk11)"
for vm in "${vms[@]}"; do for vm in "${vms[@]}"; do
v="${vm#jdk}" v="${vm#jdk}"
@ -142,6 +153,11 @@ function __java_compute_vms() {
__java_add VMS11 "$vm" 64 __java_add VMS11 "$vm" 64
__java_add HOMES11 "$HOME/opt/jvm64/$vm" 64 __java_add HOMES11 "$HOME/opt/jvm64/$vm" 64
done done
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk-17.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do
__java_add VMS17 "$vm" 64
__java_add HOMES17 "$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
@ -171,6 +187,14 @@ function __java_compute_vms() {
__java_add HOMES11 "$HOME/opt/$vm" __java_add HOMES11 "$HOME/opt/$vm"
fi fi
done done
array_from_lines vms "$(list_dirs "$HOME/opt" jdk17)"
for vm in "${vms[@]}"; do
v="${vm#jdk}"
if [ "$v" == 17 ]; then
__java_add VMS17 "$vm"
__java_add HOMES17 "$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"
@ -201,6 +225,11 @@ function __java_compute_vms() {
__java_add VMS11 "$vm" __java_add VMS11 "$vm"
__java_add HOMES11 "$HOME/opt/$vm" __java_add HOMES11 "$HOME/opt/$vm"
done done
array_from_lines vms "$(list_dirs "$HOME/opt" "jdk-17.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do
__java_add VMS17 "$vm"
__java_add HOMES17 "$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
@ -230,6 +259,14 @@ function __java_compute_vms() {
__java_add HOMES11 "/opt/$vm" __java_add HOMES11 "/opt/$vm"
fi fi
done done
array_from_lines vms "$(list_dirs "/opt" jdk17)"
for vm in "${vms[@]}"; do
v="${vm#jdk}"
if [ "$v" == 17 ]; then
__java_add VMS17 "$vm"
__java_add HOMES17 "/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"
@ -260,6 +297,11 @@ function __java_compute_vms() {
__java_add VMS11 "$vm" __java_add VMS11 "$vm"
__java_add HOMES11 "/opt/$vm" __java_add HOMES11 "/opt/$vm"
done done
array_from_lines vms "$(list_dirs "/opt" "jdk-17.*" | LANG=C sort -r)"
for vm in "${vms[@]}"; do
__java_add VMS17 "$vm"
__java_add HOMES17 "/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
@ -312,6 +354,9 @@ function __java_compute_vms() {
elif [ "$v" == 11 ]; then elif [ "$v" == 11 ]; then
__java_add VMS11 "$vm" __java_add VMS11 "$vm"
__java_add HOMES11 "/usr/lib/jvm/$vm" __java_add HOMES11 "/usr/lib/jvm/$vm"
elif [ "$v" == 17 ]; then
__java_add VMS17 "$vm"
__java_add HOMES17 "/usr/lib/jvm/$vm"
fi fi
done done
if [ -d /usr/lib/j2sdk1.4-sun ]; then if [ -d /usr/lib/j2sdk1.4-sun ]; then
@ -353,7 +398,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; do for v in 1_3 1_4 5 6 7 8 11 17; 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}")
@ -384,7 +429,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 ou 11) # Sélectionner la version de java $1 (qui peut être 1_3, 1_4, 5, 6, 7, 8, 11, 17)
# 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.
@ -428,7 +473,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 puis 1_4 # prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, 8, 11, 17 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
@ -440,7 +485,7 @@ function __java_select_default() {
return 0 return 0
fi fi
local vm local vm
for vm in 5 6 7 8 11 1_4; do for vm in 5 6 7 8 11 17 1_4; do
__java_select "$vm" && return 0 __java_select "$vm" && return 0
done done
return 1 return 1
@ -448,7 +493,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+ # $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+
# 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
@ -489,14 +534,19 @@ function select_java() {
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
17|17+)
for v in 17; do
__java_select "$v" "$2" && return 0
done
;;
esac esac
return 1 return 1
} }
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 pour une correspondance exacte # $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+ pour une version minimum # $1 == 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+|11+|17+ 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
@ -558,6 +608,14 @@ function select_java_exact() {
__java_select "$v" "$2" && return 0 __java_select "$v" "$2" && return 0
done done
;; ;;
17)
__java_select 17 "$2" && return 0
;;
17+)
for v in 17; do
__java_select "$v" "$2" && return 0
done
;;
esac esac
return 1 return 1
} }
@ -566,9 +624,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 1.4" # Si aucun argument n'est défini, on assume "DEFAULT 5 6 7 8 11 17 1.4"
local v local v
[ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 1.4 [ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 17 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