dk: début support projets maven
This commit is contained in:
parent
ad44a1c2e5
commit
f1a9c7a5e5
324
dk
324
dk
|
@ -206,8 +206,7 @@ COMMANDES
|
||||||
70300 pour PHP 7.3
|
70300 pour PHP 7.3
|
||||||
Si la valeur n'est pas spécifiée ou vaut 'none', elle est ignorée.
|
Si la valeur n'est pas spécifiée ou vaut 'none', elle est ignorée.
|
||||||
* COMPOSER_IMAGE -- Image utilisée pour lancer composer. La valeur par
|
* COMPOSER_IMAGE -- Image utilisée pour lancer composer. La valeur par
|
||||||
défaut est:
|
défaut est $DEFAULT_COMPOSER_IMAGE
|
||||||
$DEFAULT_COMPOSER_IMAGE
|
|
||||||
Spécifier 'none' pour lancer directement composer sans passer par une
|
Spécifier 'none' pour lancer directement composer sans passer par une
|
||||||
image docker.
|
image docker.
|
||||||
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
|
||||||
|
@ -235,6 +234,41 @@ 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...]
|
||||||
|
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_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.
|
||||||
|
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
|
||||||
|
* MAVEN_MACHINE -- Nom de la docker machine sur laquelle se connecter
|
||||||
|
pour lancer l'image docker. La valeur par défaut est -u, ce qui force
|
||||||
|
l'utilisation de l'instance docker locale.
|
||||||
|
* MAVEN_CMD -- Chemin vers l'exécutable mvn. Par défaut, utiliser la
|
||||||
|
commande trouvée dans le PATH
|
||||||
|
* MAVEN_SETUP -- Liste de commandes à lancer pour configurer le
|
||||||
|
container. Dans ce cas, un container ayant pour base \$MAVEN_IMAGE
|
||||||
|
et nommé d'après le nom du projet est préparé et les commandes
|
||||||
|
spécifiées y sont lancées. Ce container est réutilisé à chaque fois.
|
||||||
|
Ce paramétrage est utilisé pour par exemple installer certains
|
||||||
|
packages nécessaire au projet.
|
||||||
|
La commande 'rshell' est une extension qui lance un shell bash au lieu
|
||||||
|
de lancer la commande mvn, ce qui permet de faire des opérations
|
||||||
|
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.
|
||||||
|
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
|
||||||
|
|
||||||
OPTIONS générales
|
OPTIONS générales
|
||||||
(ces options sont communes à toutes les commandes)
|
(ces options sont communes à toutes les commandes)
|
||||||
-d, --chdir PROJDIR
|
-d, --chdir PROJDIR
|
||||||
|
@ -309,6 +343,13 @@ OPTIONS build
|
||||||
COMPOSER_IMAGE=
|
COMPOSER_IMAGE=
|
||||||
COMPOSER_CMD=
|
COMPOSER_CMD=
|
||||||
COMPOSER_SETUP=
|
COMPOSER_SETUP=
|
||||||
|
## valeurs par défaut pour les projets maven
|
||||||
|
MAVEN_ACTION= # action projet maven (package|none)
|
||||||
|
MAVEN_ARGS=() # arguments de mvn
|
||||||
|
MAVEN_JAVA=
|
||||||
|
MAVEN_IMAGE=
|
||||||
|
MAVEN_CMD=
|
||||||
|
MAVEN_SETUP=
|
||||||
## pour chaque application définie dans APPS
|
## pour chaque application définie dans APPS
|
||||||
{app}_URL= # url du dépôt
|
{app}_URL= # url du dépôt
|
||||||
{app}_DEVEL_SRCDIR= # répertoire source du dépôt en mode devel
|
{app}_DEVEL_SRCDIR= # répertoire source du dépôt en mode devel
|
||||||
|
@ -322,7 +363,10 @@ OPTIONS build
|
||||||
{app}_BRANCH= # branche à sélectionner pour le checkout
|
{app}_BRANCH= # branche à sélectionner pour le checkout
|
||||||
{app}_ORIGIN= # origine de la branche à sélectionner
|
{app}_ORIGIN= # origine de la branche à sélectionner
|
||||||
{app}_TYPE= # type de projet (composer|none)
|
{app}_TYPE= # type de projet (composer|none)
|
||||||
{app}_AFTER_UPDATE=() # liste de commandes à lancer après le checkout
|
{app}_BEFORE_BUILD=() # liste de commandes à lancer après le
|
||||||
|
# checkout et avant le build du projet (pour
|
||||||
|
# les types de projets supportés)
|
||||||
|
{app}_AFTER_UPDATE=() # liste de commandes à lancer après le build
|
||||||
# valeurs pour les projets composer. ces valeurs remplacent le cas
|
# valeurs pour les projets composer. ces valeurs remplacent le cas
|
||||||
# échéant celles définies dans le fichier .composer.conf du projet
|
# échéant celles définies dans le fichier .composer.conf du projet
|
||||||
{app}_COMPOSER_ACTION=
|
{app}_COMPOSER_ACTION=
|
||||||
|
@ -332,6 +376,12 @@ OPTIONS build
|
||||||
{app}_COMPOSER_IMAGE=
|
{app}_COMPOSER_IMAGE=
|
||||||
{app}_COMPOSER_CMD=
|
{app}_COMPOSER_CMD=
|
||||||
{app}_COMPOSER_SETUP=
|
{app}_COMPOSER_SETUP=
|
||||||
|
{app}_MAVEN_ACTION=
|
||||||
|
{app}_MAVEN_ARGS=()
|
||||||
|
{app}_MAVEN_JAVA=
|
||||||
|
{app}_MAVEN_IMAGE=
|
||||||
|
{app}_MAVEN_CMD=
|
||||||
|
{app}_MAVEN_SETUP=
|
||||||
Certaines valeurs peuvent être valuées selon le profil
|
Certaines valeurs peuvent être valuées selon le profil
|
||||||
{profile}_CLEAN=
|
{profile}_CLEAN=
|
||||||
{profile}_APPS=()
|
{profile}_APPS=()
|
||||||
|
@ -351,6 +401,12 @@ OPTIONS build
|
||||||
{app}_{profile}_COMPOSER_IMAGE=
|
{app}_{profile}_COMPOSER_IMAGE=
|
||||||
{app}_{profile}_COMPOSER_CMD=
|
{app}_{profile}_COMPOSER_CMD=
|
||||||
{app}_{profile}_COMPOSER_SETUP=
|
{app}_{profile}_COMPOSER_SETUP=
|
||||||
|
{app}_{profile}_MAVEN_ACTION=
|
||||||
|
{app}_{profile}_MAVEN_ARGS=()
|
||||||
|
{app}_{profile}_MAVEN_JAVA=
|
||||||
|
{app}_{profile}_MAVEN_IMAGE=
|
||||||
|
{app}_{profile}_MAVEN_CMD=
|
||||||
|
{app}_{profile}_MAVEN_SETUP=
|
||||||
-u, --uu, --update-apps-only
|
-u, --uu, --update-apps-only
|
||||||
Ne faire que la mise à jour depuis les dépôts dépendants.
|
Ne faire que la mise à jour depuis les dépôts dépendants.
|
||||||
-w, --ww, --update-apps-devel
|
-w, --ww, --update-apps-devel
|
||||||
|
@ -384,8 +440,10 @@ VARIABLES de update-apps.conf
|
||||||
Pour toutes les variables de type BRANCH, utiliser la syntaxe ^COMMIT
|
Pour toutes les variables de type BRANCH, utiliser la syntaxe ^COMMIT
|
||||||
pour ignorer ORIGIN et sélectionner un commit en particulier
|
pour ignorer ORIGIN et sélectionner un commit en particulier
|
||||||
TYPE
|
TYPE
|
||||||
vaut 'composer' par défaut si le fichier composer.json existe à la
|
la valeur par défaut dépend des fichiers présents à la racine du projet
|
||||||
racine du projet. sinon vaut 'none' par défaut
|
- si un fichier composer.json existe, vaut 'composer' par défaut
|
||||||
|
- si un fichier pom.xml existe, vaut 'maven' par défaut
|
||||||
|
- sinon vaut 'none' par défaut
|
||||||
AFTER_UPDATE
|
AFTER_UPDATE
|
||||||
Cette variable est une liste de commandes à lancer après la maj du dépôt
|
Cette variable est une liste de commandes à lancer après la maj du dépôt
|
||||||
- si le chemin est absolu ou relatif, lancer la commande telle quelle
|
- si le chemin est absolu ou relatif, lancer la commande telle quelle
|
||||||
|
@ -789,7 +847,8 @@ function build_update_apps() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
etitle "Mise à jour des dépendances"
|
etitle "Mise à jour des dépendances"
|
||||||
local app var URL SRC DEVEL_SRCDIR DEST NAME have_RSYNC_OPTS RSYNC_OPTS ORIGIN BRANCH TYPE after_update after_updates
|
local app var URL SRC DEVEL_SRCDIR DEST NAME have_RSYNC_OPTS RSYNC_OPTS ORIGIN BRANCH TYPE
|
||||||
|
local before_build before_builds after_update after_updates
|
||||||
for app in "${APPS[@]}"; do
|
for app in "${APPS[@]}"; do
|
||||||
etitle "$app"
|
etitle "$app"
|
||||||
|
|
||||||
|
@ -848,6 +907,7 @@ function build_update_apps() {
|
||||||
# possible de détecter le type quand on a le projet
|
# possible de détecter le type quand on a le projet
|
||||||
# en cas de maj ici, mettre à jour aussi le code ci-dessous
|
# en cas de maj ici, mettre à jour aussi le code ci-dessous
|
||||||
if [ -f "$DEST/composer.json" ]; then TYPE=composer
|
if [ -f "$DEST/composer.json" ]; then TYPE=composer
|
||||||
|
elif [ -f "$DEST/pom.xml" ]; then TYPE=maven
|
||||||
else TYPE=none
|
else TYPE=none
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -899,6 +959,7 @@ function build_update_apps() {
|
||||||
# possible de détecter le type quand on a le projet
|
# possible de détecter le type quand on a le projet
|
||||||
# en cas de maj ici, mettre à jour aussi le code ci-dessus et ci-dessous
|
# en cas de maj ici, mettre à jour aussi le code ci-dessus et ci-dessous
|
||||||
if [ -f "$DEST/composer.json" ]; then TYPE=composer
|
if [ -f "$DEST/composer.json" ]; then TYPE=composer
|
||||||
|
elif [ -f "$DEST/pom.xml" ]; then TYPE=maven
|
||||||
else TYPE=none
|
else TYPE=none
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -949,6 +1010,7 @@ function build_update_apps() {
|
||||||
# possible de détecter le type quand on a le projet
|
# possible de détecter le type quand on a le projet
|
||||||
# en cas de maj ici, mettre à jour aussi le code ci-dessus
|
# en cas de maj ici, mettre à jour aussi le code ci-dessus
|
||||||
if [ -f "$DEST/composer.json" ]; then TYPE=composer
|
if [ -f "$DEST/composer.json" ]; then TYPE=composer
|
||||||
|
elif [ -f "$DEST/pom.xml" ]; then TYPE=maven
|
||||||
else TYPE=none
|
else TYPE=none
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -958,14 +1020,30 @@ function build_update_apps() {
|
||||||
die "ni URL ni SRC ne sont définis"
|
die "ni URL ni SRC ne sont définis"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
after_updates="${var}_AFTER_UPDATE"
|
before_builds="${var}_BEFORE_BUILD"
|
||||||
if is_defined "$after_updates"; then
|
if is_defined "$before_builds"; then
|
||||||
after_updates="$after_updates[@]"; after_updates=("${!after_updates}")
|
before_builds="$before_builds[@]"; before_builds=("${!before_builds}")
|
||||||
elif [ "$TYPE" == composer ]; then
|
|
||||||
after_updates=(sqlmig)
|
|
||||||
else
|
else
|
||||||
after_updates=()
|
before_builds=()
|
||||||
fi
|
fi
|
||||||
|
for before_build in "${before_builds[@]}"; do
|
||||||
|
if [ "${before_build#/}" != "$before_build" ]; then
|
||||||
|
# commande absolue, la lancer telle quelle
|
||||||
|
etitle "$before_build"
|
||||||
|
eval "$before_build" || { eend; eend; return 1; }
|
||||||
|
eend
|
||||||
|
elif [ "${before_build#./}" != "$before_build" ]; then
|
||||||
|
# commande relative, la lancer telle quelle
|
||||||
|
etitle "$before_build"
|
||||||
|
eval "$before_build" || { eend; eend; return 1; }
|
||||||
|
eend
|
||||||
|
else
|
||||||
|
# c'est une fonction update_apps_func_*
|
||||||
|
etitle "$before_build"
|
||||||
|
eval "update_apps_func_$before_build" || { eend; eend; return 1; }
|
||||||
|
eend
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
estep "Type de dépôt: $TYPE"
|
estep "Type de dépôt: $TYPE"
|
||||||
if [ "$TYPE" == composer ]; then
|
if [ "$TYPE" == composer ]; then
|
||||||
|
@ -1007,8 +1085,56 @@ function build_update_apps() {
|
||||||
cd "$cwd"
|
cd "$cwd"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
elif [ "$TYPE" == maven ]; then
|
||||||
|
local cvname cvvalue
|
||||||
|
local maven_java maven_image maven_cmd maven_setup maven_action
|
||||||
|
local -a maven_vars maven_args
|
||||||
|
|
||||||
|
for cvname in maven_java maven_image maven_cmd maven_setup; do
|
||||||
|
cvvalue="${var}_${PROFILE}_${cvname^^}"; cvvalue="${!cvvalue}"
|
||||||
|
[ -n "$cvvalue" ] || { cvvalue="${var}_${cvname^^}"; cvvalue="${!cvvalue}"; }
|
||||||
|
[ -n "$cvvalue" ] || { cvvalue="${PROFILE}_${cvname^^}"; cvvalue="${!cvvalue}"; }
|
||||||
|
[ -n "$cvvalue" ] || { cvvalue="${cvname^^}"; cvvalue="${!cvvalue}"; }
|
||||||
|
[ -n "$cvvalue" ] && maven_vars+=("${cvname^^}=$cvvalue")
|
||||||
|
done
|
||||||
|
|
||||||
|
maven_action="${var}_${PROFILE}_MAVEN_ACTION"; maven_action="${!maven_action}"
|
||||||
|
[ -n "$maven_action" ] || { maven_action="${var}_MAVEN_ACTION"; maven_action="${!maven_action}"; }
|
||||||
|
[ -n "$maven_action" ] || { maven_action="${PROFILE}_MAVEN_ACTION"; maven_action="${!maven_action}"; }
|
||||||
|
[ -n "$maven_action" ] || maven_action="$MAVEN_ACTION"
|
||||||
|
|
||||||
|
maven_args="${var}_${PROFILE}_MAVEN_ARGS"
|
||||||
|
is_defined "$maven_args" || maven_args="${var}_MAVEN_ARGS"
|
||||||
|
is_defined "$maven_args" || maven_args="${PROFILE}_MAVEN_ARGS"
|
||||||
|
is_defined "$maven_args" || maven_args="MAVEN_ARGS"
|
||||||
|
maven_args="${maven_args}[@]"; maven_args=("${!maven_args}")
|
||||||
|
|
||||||
|
if [ -z "$BUILD_UPDATE_DEVEL" ]; then
|
||||||
|
case "${maven_action:-p}" in
|
||||||
|
c|clean) maven_action=clean;;
|
||||||
|
po|package_only) maven_action=package;;
|
||||||
|
p|package) maven_action="clean package";;
|
||||||
|
none|nop) maven_action=;;
|
||||||
|
*) ewarn "$maven_action: action invalide"; maven_action=;;
|
||||||
|
esac
|
||||||
|
if [ -n "$maven_action" ]; then
|
||||||
|
setx cwd=pwd
|
||||||
|
cd "$DEST"
|
||||||
|
estep "Compilation du projet maven"
|
||||||
|
auto_maven "${maven_vars[@]}" $maven_action "${maven_args[@]}" || { eend; return 1; }
|
||||||
|
cd "$cwd"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
after_updates="${var}_AFTER_UPDATE"
|
||||||
|
if is_defined "$after_updates"; then
|
||||||
|
after_updates="$after_updates[@]"; after_updates=("${!after_updates}")
|
||||||
|
elif [ "$TYPE" == composer ]; then
|
||||||
|
after_updates=(sqlmig)
|
||||||
|
else
|
||||||
|
after_updates=()
|
||||||
|
fi
|
||||||
for after_update in "${after_updates[@]}"; do
|
for after_update in "${after_updates[@]}"; do
|
||||||
if [ "${after_update#/}" != "$after_update" ]; then
|
if [ "${after_update#/}" != "$after_update" ]; then
|
||||||
# commande absolue, la lancer telle quelle
|
# commande absolue, la lancer telle quelle
|
||||||
|
@ -1940,6 +2066,166 @@ exit((PHP_VERSION_ID < $version)? 0: 1);
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function default_local_maven() {
|
||||||
|
# lancement direct
|
||||||
|
case "$1" in
|
||||||
|
rootshell|rshell|rootbash|rbash)
|
||||||
|
shift
|
||||||
|
# ewarn parce qu'on est pas root dans ce shell contrairement à ce qui est demandé
|
||||||
|
ewarn "Lancement d'un shell utilisateur alors qu'un shell root est demandé"
|
||||||
|
bash "$@"
|
||||||
|
;;
|
||||||
|
usershell|shell|userbash|bash)
|
||||||
|
shift
|
||||||
|
estep "Lancement d'un shell utilisateur"
|
||||||
|
bash "$@"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
[ -n "$MAVEN_CMD" ] || MAVEN_CMD=mvn
|
||||||
|
"$MAVEN_CMD" "$@"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
function default_docker_maven() {
|
||||||
|
# lancement dans un container
|
||||||
|
local user group projdir actualcmd args
|
||||||
|
setx user=id -un; setx user=getent passwd "$user"
|
||||||
|
setx group=id -gn; setx group=getent group "$group"
|
||||||
|
setx projdir=pwd
|
||||||
|
case "$1" in
|
||||||
|
rootshell|rshell|rootbash|rbash)
|
||||||
|
shift
|
||||||
|
actualcmd='eval "bash $args"'
|
||||||
|
;;
|
||||||
|
usershell|shell|userbash|bash)
|
||||||
|
shift
|
||||||
|
actualcmd='eval "su-exec \"$user\" bash $args"'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
actualcmd='eval "su-exec \"$user\" \"$maven\" $args"'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
setx args=qvals "$@"
|
||||||
|
|
||||||
|
local -a basecmd cmd setupscript runscript
|
||||||
|
basecmd=(
|
||||||
|
-e user="$user"
|
||||||
|
-e group="$group"
|
||||||
|
-e projdir="$projdir"
|
||||||
|
-e setup="$MAVEN_SETUP"
|
||||||
|
-e maven="$MAVEN_CMD"
|
||||||
|
-e args="$args"
|
||||||
|
${MAVEN_JAVA:+-e JAVA="$MAVEN_JAVA"}
|
||||||
|
-v "$HOME:$HOME"
|
||||||
|
)
|
||||||
|
if [ "${projdir#$HOME/}" == "$projdir" ]; then
|
||||||
|
# si le répertoire de projet ne se trouve pas dans $HOME, le monter aussi
|
||||||
|
cmd+=(-v "$projdir:$projdir")
|
||||||
|
fi
|
||||||
|
setupscript='eval "$setup"'
|
||||||
|
runscript='
|
||||||
|
echo "$user" >>/etc/passwd; user="${user%%:*}"
|
||||||
|
echo "$group" >>/etc/group; group="${group%%:*}"
|
||||||
|
|
||||||
|
[ -n "$maven" ] || maven=mvn
|
||||||
|
|
||||||
|
cd "$projdir"
|
||||||
|
'"$actualcmd"
|
||||||
|
|
||||||
|
if [ -n "$MAVEN_SETUP" ]; then
|
||||||
|
# lancement dans un container docker à préparer
|
||||||
|
local NAME project_name container_name dkid
|
||||||
|
if [ -f docker-compose.yml ]; then
|
||||||
|
compose_set_project_name set_container_name
|
||||||
|
else
|
||||||
|
NAME="$(basename -- "$(pwd)")"
|
||||||
|
docker_check_name set_container_name
|
||||||
|
fi
|
||||||
|
container_name="dk_maven_${container_name}"
|
||||||
|
|
||||||
|
# vérifier l'existence de l'image
|
||||||
|
setx dkid=docker image ls --format '{{.ID}}' "${container_name}_image"
|
||||||
|
|
||||||
|
# créer le container le cas échéant
|
||||||
|
if [ -z "$dkid" ]; then
|
||||||
|
estep "Création du container $container_name avec l'image $MAVEN_IMAGE"
|
||||||
|
cmd=(
|
||||||
|
"$DOCKER" create -it --name "${container_name}_ct"
|
||||||
|
"${basecmd[@]}"
|
||||||
|
"$MAVEN_IMAGE"
|
||||||
|
bash -c "$setupscript"
|
||||||
|
)
|
||||||
|
setx dkid="${cmd[@]}" || return 1
|
||||||
|
"$DOCKER" container start -ai "$dkid" || return 1
|
||||||
|
"$DOCKER" container commit "$dkid" "${container_name}_image" || return 1
|
||||||
|
"$DOCKER" container rm "$dkid" || return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# prendre comme image le container créé
|
||||||
|
MAVEN_IMAGE="${container_name}_image"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cmd=(
|
||||||
|
"$DOCKER" run -it --rm
|
||||||
|
"${basecmd[@]}"
|
||||||
|
"$MAVEN_IMAGE"
|
||||||
|
bash -c "$runscript"
|
||||||
|
)
|
||||||
|
"${cmd[@]}"
|
||||||
|
}
|
||||||
|
function local_maven() { default_local_maven "$@"; }
|
||||||
|
function docker_maven() { default_docker_maven "$@"; }
|
||||||
|
function auto_maven() {
|
||||||
|
local MAVEN_JAVA=
|
||||||
|
local MAVEN_IMAGE="$DEFAULT_MAVEN_IMAGE"
|
||||||
|
local MAVEN_MACHINE=-u
|
||||||
|
local MAVEN_CMD=
|
||||||
|
local MAVEN_SETUP=
|
||||||
|
[ -f .maven.conf ] && source ./.maven.conf
|
||||||
|
# les premiers arguments peuvent servir à redéfinir les variables
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
MAVEN_JAVA=*) setv "$1"; shift;;
|
||||||
|
MAVEN_IMAGE=*) setv "$1"; shift;;
|
||||||
|
MAVEN_MACHINE=*) setv "$1"; shift;;
|
||||||
|
MAVEN_CMD=*) setv "$1"; shift;;
|
||||||
|
MAVEN_SETUP=*) setv "$1"; shift;;
|
||||||
|
*) break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
local use_image
|
||||||
|
if [ "$MAVEN_JAVA" == force -o "$MAVEN_JAVA" == any ]; then
|
||||||
|
MAVEN_JAVA=
|
||||||
|
use_image=1
|
||||||
|
elif [ "$MAVEN_JAVA" == none ]; then
|
||||||
|
MAVEN_JAVA=
|
||||||
|
use_image=
|
||||||
|
else
|
||||||
|
use_image=1
|
||||||
|
fi
|
||||||
|
if [ -n "$use_image" ]; then
|
||||||
|
[ "$MAVEN_IMAGE" != none ] || die "Vous devez spécifier l'image à utiliser pour maven"
|
||||||
|
|
||||||
|
local PREVIOUS_DOCKER_MACHINE_NAME="$DOCKER_MACHINE_NAME"
|
||||||
|
if [ -n "$MAVEN_MACHINE" -a "$DOCKER_MACHINE_NAME" != "$MAVEN_MACHINE" ]; then
|
||||||
|
local -x DOCKER_TLS_VERIFY= DOCKER_HOST= DOCKER_CERT_PATH= DOCKER_MACHINE_NAME=
|
||||||
|
if [ "$MAVEN_MACHINE" != -u ]; then
|
||||||
|
local env
|
||||||
|
setx env=docker-machine env "$MAVEN_MACHINE" 2>/dev/null || {
|
||||||
|
eerror "$MAVEN_MACHINE: une erreur s'est produite lors de la sélection du noeud avec docker-machine"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
eval "$env"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker_maven "$@"
|
||||||
|
else
|
||||||
|
local_maven "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
function resolve_dm_alias() {
|
function resolve_dm_alias() {
|
||||||
|
@ -2013,8 +2299,8 @@ else DOCKER=docker
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DEFAULT_PROFILE=devel
|
DEFAULT_PROFILE=devel
|
||||||
# pour le moment ne pas lancer composer dans un container par défaut
|
DEFAULT_COMPOSER_IMAGE=docker.univ-reunion.fr/image/phpbuilder
|
||||||
DEFAULT_COMPOSER_IMAGE=none #docker.univ-reunion.fr/image/phpbuilder
|
DEFAULT_MAVEN_IMAGE=docker.univ-reunion.fr/image/javabuilder
|
||||||
PROFILE=
|
PROFILE=
|
||||||
DM_ALIASES=()
|
DM_ALIASES=()
|
||||||
DM_PROFILES=()
|
DM_PROFILES=()
|
||||||
|
@ -2545,6 +2831,16 @@ NR == 1 { print; next }
|
||||||
done
|
done
|
||||||
auto_composer "${args[@]}"
|
auto_composer "${args[@]}"
|
||||||
;;
|
;;
|
||||||
|
maven|mvn)
|
||||||
|
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
|
||||||
|
args+=("$1"); shift
|
||||||
|
done
|
||||||
|
auto_maven "${args[@]}"
|
||||||
|
;;
|
||||||
_*|*_)
|
_*|*_)
|
||||||
# transmettre directement à docker
|
# transmettre directement à docker
|
||||||
cmd="${cmd#_}"
|
cmd="${cmd#_}"
|
||||||
|
|
Loading…
Reference in New Issue