corriger le calcul de la version de tomcat à sélectionner

This commit is contained in:
Jephté Clain 2017-06-29 00:26:26 +04:00
parent e3344f512e
commit c659159188
1 changed files with 21 additions and 8 deletions

29
toinst
View File

@ -97,7 +97,10 @@ OPTIONS
--config-template --config-template
Créer un modèle de configuration dans le répertoire des webapp Créer un modèle de configuration dans le répertoire des webapp
spécifiées. Si aucune webapp n'est spécifiée, créer le fichier dans le spécifiées. Si aucune webapp n'est spécifiée, créer le fichier dans le
répertoire courant." répertoire courant.
--legacy-sort
Indiquer que la version de sort actuellement installée ne supporte pas
l'option -V (--version-sort) et donc qu'il ne faut pas l'utiliser."
} }
DEFAULT_EXCLUDES=(/.git/ /.toinst.conf) DEFAULT_EXCLUDES=(/.git/ /.toinst.conf)
@ -222,6 +225,17 @@ function build_rsync_options() {
done done
} }
function last_version_dir() {
local -a dirs
local legacy_sort="$1"; shift
if [ -n "$legacy_sort" ]; then
array_from_lines dirs "$(list_dirs "$@" | sort -r)"
else
array_from_lines dirs "$(list_dirs "$@" | sort -rV)"
fi
[ ${#dirs[*]} -gt 0 ] && echo "$1/${dirs[0]}"
}
args=(% args=(%
--help '$exit_with display_help' --help '$exit_with display_help'
--config-template action=config-template --config-template action=config-template
@ -250,6 +264,7 @@ args=(%
-n,--no-restart restart=0 -n,--no-restart restart=0
-r,--restart-only action=restart -r,--restart-only action=restart
--fake fake=1 --fake fake=1
--legacy-sort legacy_sort=1
) )
parse_args "$@"; set -- "${args[@]}" parse_args "$@"; set -- "${args[@]}"
@ -314,9 +329,9 @@ if [ -z "$TOMCAT_PROFILE" ]; then
setx v=readlink /opt/tomcat setx v=readlink /opt/tomcat
setx v=basename -- "$v" setx v=basename -- "$v"
else else
array_lsdirs ts /opt "apache-tomcat-*" setx t=last_version_dir "$legacy_sort" /opt "apache-tomcat-*"
if [ ${#ts[*]} -gt 0 ]; then if [ -n "$t" ]; then
[ -n "$CATALINA_BASE" ] || CATALINA_BASE="${ts[0]}" [ -n "$CATALINA_BASE" ] || CATALINA_BASE="$t"
v="$CATALINA_BASE" v="$CATALINA_BASE"
[ -L "$v" ] && setx v=readlink "$v" [ -L "$v" ] && setx v=readlink "$v"
setx v=basename -- "$v" setx v=basename -- "$v"
@ -361,15 +376,13 @@ debian:*)
runs:*) runs:*)
v="${TOMCAT_PROFILE#runs:tomcat}" v="${TOMCAT_PROFILE#runs:tomcat}"
if [ -z "$CATALINA_BASE" -a -n "$v" -a "$v" != "$TOMCAT_PROFILE" ]; then if [ -z "$CATALINA_BASE" -a -n "$v" -a "$v" != "$TOMCAT_PROFILE" ]; then
array_lsdirs ts /opt "apache-tomcat-$v*" setx CATALINA_BASE=last_version_dir "$legacy_sort" /opt "apache-tomcat-$v*"
CATALINA_BASE="${ts[0]}"
fi fi
if [ -z "$CATALINA_BASE" ]; then if [ -z "$CATALINA_BASE" ]; then
if [ -L /opt/tomcat ]; then if [ -L /opt/tomcat ]; then
setx CATALINA_BASE=readlink /opt/tomcat setx CATALINA_BASE=readlink /opt/tomcat
else else
array_lsdirs ts /opt "apache-tomcat-*" setx CATALINA_BASE=last_version_dir "$legacy_sort" /opt "apache-tomcat-*"
CATALINA_BASE="${ts[0]}"
fi fi
fi fi
name="${TOMCAT_PROFILE#runs:}" name="${TOMCAT_PROFILE#runs:}"