dk: mvn est aussi un frontend pour lancer java

This commit is contained in:
Jephté Clain 2021-02-02 06:18:35 +04:00
parent f1a9c7a5e5
commit 543d2d2f79
1 changed files with 67 additions and 16 deletions

81
dk
View File

@ -182,9 +182,10 @@ COMMANDES
Supprimer les containers et les images inutilisées
composer|ci|cu|cr|cs [args...]
Frontend pour lancer composer à l'intérieur d'un container. Les
commandes 'ci', 'cu', 'cr', 'cs' sont des alias pour 'composer install',
'composer update', 'composer rshell' et 'composer shell' respectivement
Frontend pour lancer composer à l'intérieur d'un container.
Les commandes 'ci', 'cu', 'cr', 'cs' sont des aliases pour 'composer
install', 'composer update', 'composer rshell' et 'composer shell'
respectivement
S'il existe un fichier .composer.conf dans le répertoire du projet, il
est sourcé. Ce fichier définit des variables qui indiquent comment la
commande composer est lancée. Les variables suivantes peuvent être
@ -234,18 +235,20 @@ COMMANDES
peuvent être utilisés pour redéfinir les variables COMPOSER_*, e.g
$scriptname composer COMPOSER_IMAGE=none install
maven|mvn [args...]
Frontend pour lancer maven à l'intérieur d'un container. S'il existe un
fichier .maven.conf dans le répertoire du projet, il est sourcé. Ce
fichier définit des variables qui indiquent comment la commande mvn est
lancée. Les variables suivantes peuvent être définies:
maven|mvn|mvr|mvs|java [args...]
Frontend pour lancer maven ou Java à l'intérieur d'un container.
Les commandes 'mvr', 'mvs' et 'java' sont des aliases pour 'maven
rshell', 'maven shell' et 'maven java' respectivement
S'il existe un fichier .maven.conf dans le répertoire du projet, il est
sourcé. Ce fichier définit des variables qui indiquent comment la
commande mvn est lancée. Les variables suivantes peuvent être définies:
* MAVEN_JAVA -- Version de java à sélectionner à l'intérieur de
l'image. Spécifier 'any' ou 'force' pour prendre la valeur par
défaut. Spécifier 'none' pour ne pas utiliser l'image
* MAVEN_IMAGE -- Image utilisée pour lancer mvn. La valeur par défaut
est $DEFAULT_MAVEN_IMAGE
Spécifier 'none' pour lancer directement mvn sans passer par une image
docker.
docker, même si MAVEN_JAVA est renseigné.
L'image spécifiée doit disposer de la commande 'su-exec' afin de
pouvoir lancer la commande avec l'utilisateur courant. Le répertoire
\$HOME est monté à l'intérieur du container
@ -265,6 +268,9 @@ COMMANDES
plus complexes si le besoin s'en fait sentir. NB: le shell est lancé
avec l'utilisateur root. La commande alternative 'shell' lance le shell
avec le compte utilisateur.
La commande 'java' est une extension qui lance directement java au lieu
de lancer la commande mvn. Il est possible de spécifier la version de
java à sélectionner dans l'image e.g 'java7', 'java8', 'java11'
Pour faciliter l'utilisation dans un script, les premiers arguments
peuvent être utilisés pour redéfinir les variables MAVEN_*, e.g
$scriptname maven MAVEN_IMAGE=none clean package
@ -2009,6 +2015,7 @@ function auto_composer() {
COMPOSER_MACHINE=*) setv "$1"; shift;;
COMPOSER_CMD=*) setv "$1"; shift;;
COMPOSER_SETUP=*) setv "$1"; shift;;
COMPOSER_*=*) shift;; # ignorer variable inconnue
*) break;;
esac
done
@ -2068,6 +2075,11 @@ exit((PHP_VERSION_ID < $version)? 0: 1);
function default_local_maven() {
# lancement direct
if [ -n "$MAVEN_JAVA" ]; then
urequire java
select_java_exact "$MAVEN_JAVA" || die
fi
case "$1" in
rootshell|rshell|rootbash|rbash)
shift
@ -2080,6 +2092,10 @@ function default_local_maven() {
estep "Lancement d'un shell utilisateur"
bash "$@"
;;
java)
shift
java "$@"
;;
*)
[ -n "$MAVEN_CMD" ] || MAVEN_CMD=mvn
"$MAVEN_CMD" "$@"
@ -2101,6 +2117,10 @@ function default_docker_maven() {
shift
actualcmd='eval "su-exec \"$user\" bash $args"'
;;
java)
shift
actualcmd='eval "su-exec \"$user\" java $args"'
;;
*)
actualcmd='eval "su-exec \"$user\" \"$maven\" $args"'
;;
@ -2190,10 +2210,21 @@ function auto_maven() {
MAVEN_MACHINE=*) setv "$1"; shift;;
MAVEN_CMD=*) setv "$1"; shift;;
MAVEN_SETUP=*) setv "$1"; shift;;
MAVEN_*=*) shift;; # ignorer variable inconnue
*) break;;
esac
done
local version
case "$1" in
java*)
version="${1#java}"
[ -n "$version" ] && MAVEN_JAVA="$version"
shift
set -- java "$@"
;;
esac
local use_image
if [ "$MAVEN_JAVA" == force -o "$MAVEN_JAVA" == any ]; then
MAVEN_JAVA=
@ -2201,7 +2232,7 @@ function auto_maven() {
elif [ "$MAVEN_JAVA" == none ]; then
MAVEN_JAVA=
use_image=
else
elif [ "$MAVEN_IMAGE" != none ]; then
use_image=1
fi
if [ -n "$use_image" ]; then
@ -2821,21 +2852,41 @@ NR == 1 { print; next }
[ -f .build.scripts.sh ] && source ./.build.scripts.sh
[ -f build.scripts.sh ] && source ./build.scripts.sh
args=()
if [ "$cmd" == ci ]; then args+=(install)
elif [ "$cmd" == cu ]; then args+=(update)
elif [ "$cmd" == cr ]; then args+=(rshell)
elif [ "$cmd" == cs ]; then args+=(shell)
while [ $# -gt 0 -a "$1" != -- ]; do
if [[ "$1" == COMPOSER_*=* ]]; then
args+=("$1"); shift
else
break
fi
done
case "$cmd" in
ci) args+=(install);;
cu) args+=(update);;
cr) args+=(rshell);;
cs) args+=(shell);;
esac
while [ $# -gt 0 -a "$1" != -- ]; do
args+=("$1"); shift
done
auto_composer "${args[@]}"
;;
maven|mvn)
maven|mvn|mvr|mvs|java*)
build_set_options "$update_apps_mode" "$update_apps_origin" "$update_apps_branch"
[ -f .build.scripts.sh ] && source ./.build.scripts.sh
[ -f build.scripts.sh ] && source ./build.scripts.sh
args=()
while [ $# -gt 0 -a "$1" != -- ]; do
if [[ "$1" == MAVEN_*=* ]]; then
args+=("$1"); shift
else
break
fi
done
case "$cmd" in
mvr) args+=(rshell);;
mvs) args+=(shell);;
java*) args+=("$cmd");;
esac
while [ $# -gt 0 -a "$1" != -- ]; do
args+=("$1"); shift
done