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

83
dk
View File

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