dk: support répertoire/fichier source
This commit is contained in:
parent
1d7e2d0949
commit
9fad9924ef
57
dk
57
dk
|
@ -272,7 +272,8 @@ OPTIONS build
|
|||
APPS=() # applications à mettre à jour par défaut
|
||||
PROFILE_APPS=() # ou... spécifique au profil 'PROFILE'
|
||||
app_URL= # url du dépôt
|
||||
app_DEVEL_SRCDIR= # répertoire source en mode devel
|
||||
app_DEVEL_SRCDIR= # répertoire source du dépôt en mode devel
|
||||
app_SRC= # répertoire/fichier source (si URL pas renseigné)
|
||||
app_DEST= # répertoire dans lequel faire le checkout
|
||||
app_PROFILE_ORIGIN= # origine spécifique au profil 'PROFILE'
|
||||
app_ORIGIN= # ou... origine par défaut de la branche
|
||||
|
@ -298,6 +299,11 @@ OPTIONS deploy
|
|||
(c'est à dire ne pas utiliser l'option --with-registry-auth)
|
||||
|
||||
VARIABLES de update-apps.conf
|
||||
SRC
|
||||
répertoire/fichier source, si URL n'est pas défini. si ce chemin est
|
||||
relatif, il doit être exprimé par rapport au répertoire du projet.
|
||||
IMPORTANT: dans ce cas, DEST n'est pas le répertoire de base du
|
||||
checkout, mais le répertoire destination pour la synchro
|
||||
DEVEL_SRCDIR
|
||||
répertoire source pour le mode devel. attention, il s'agit du répertoire
|
||||
du projet, alors que DEFAULT_DEVEL_SRCDIR est le répertoire de base par
|
||||
|
@ -318,6 +324,7 @@ VARIABLES de update-apps.conf
|
|||
projet. Les variables suivantes sont disponibles:
|
||||
URL= # url du dépôt
|
||||
DEVEL_SRCDIR= # répertoire source en mode devel
|
||||
SRC= # répertoire/fichier source (si URL pas renseigné)
|
||||
DEST= # répertoire dans lequel faire le checkout
|
||||
ORIGIN= # origine de la branche
|
||||
BRANCH= # branche sélectionnée dans le dépôt
|
||||
|
@ -654,8 +661,8 @@ function build_update_apps() {
|
|||
DEFAULT_ORIGIN="$UPDATE_APPS_ORIGIN"
|
||||
[ -z "$DEFAULT_ORIGIN" ] && DEFAULT_ORIGIN=origin
|
||||
DEFAULT_BRANCH="$UPDATE_APPS_BRANCH"
|
||||
#XXX à terme, on déploiera la branche master en prod
|
||||
[ -z "$DEFAULT_BRANCH" -a "$PROFILE" == prod ] && DEFAULT_BRANCH=develop #master
|
||||
#XXX à terme, ne déployer en prod que la branche master
|
||||
[ -z "$DEFAULT_BRANCH" -a "$PROFILE" == prod ] && DEFAULT_BRANCH=develop #XXX master
|
||||
[ -z "$DEFAULT_BRANCH" ] && DEFAULT_BRANCH=develop
|
||||
DEFAULT_DEVEL_SRCDIR="$HOME/wop/php"
|
||||
DEFAULT_COMPOSER_ACTION=install
|
||||
|
@ -685,17 +692,20 @@ function build_update_apps() {
|
|||
fi
|
||||
|
||||
etitle "Mise à jour des dépendances"
|
||||
local app var URL DEVEL_SRCDIR DEST ORIGIN BRANCH TYPE after_update after_updates composer_action
|
||||
local app var URL SRC DEVEL_SRCDIR DEST ORIGIN BRANCH TYPE after_update after_updates composer_action
|
||||
for app in "${APPS[@]}"; do
|
||||
etitle "$app"
|
||||
|
||||
var="${app//-/_}"
|
||||
|
||||
URL="${var}_URL"; URL="${!URL}"
|
||||
[ -n "$URL" ] || {
|
||||
ewarn "$app: vous devez définir l'url"
|
||||
if [ -z "$URL" ]; then
|
||||
SRC="${var}_SRC"; SRC="${!SRC}"
|
||||
if [ -z "$SRC" ]; then
|
||||
ewarn "$app: vous devez définir ${var}_URL ou ${var}_SRC"
|
||||
eend; return 1
|
||||
}
|
||||
fi
|
||||
fi
|
||||
|
||||
DEVEL_SRCDIR="${var}_DEVEL_SRCDIR"; DEVEL_SRCDIR="${!DEVEL_SRCDIR}"
|
||||
[ -n "$DEVEL_SRCDIR" ] || DEVEL_SRCDIR="$DEFAULT_DEVEL_SRCDIR/${URL##*/}"
|
||||
|
@ -715,8 +725,9 @@ function build_update_apps() {
|
|||
# calculer le type maintenant, on en a besoin pour le mode devel
|
||||
TYPE="${var}_TYPE"; TYPE="${!TYPE}"
|
||||
|
||||
DEST="$DEST/$app"
|
||||
if [ -n "$BUILD_UPDATE_DEVEL" ]; then
|
||||
DEST="$DEST/$app"
|
||||
|
||||
# synchronisation en mode devel
|
||||
local -a rsync_opts; rsync_opts=(-a --delete --exclude .git/ --delete-excluded)
|
||||
estep "Synchro $DEVEL_SRCDIR --> $DEST"
|
||||
|
@ -741,7 +752,9 @@ function build_update_apps() {
|
|||
rsync "${rsync_opts[@]}" --exclude /vendor/ "$DEFAULT_DEVEL_SRCDIR/$pname/" "$depdir"
|
||||
done
|
||||
fi
|
||||
else
|
||||
elif [ -n "$URL" ]; then
|
||||
DEST="$DEST/$app"
|
||||
|
||||
if [ -d "$DEST" -a -d "$DEST/.git" ]; then
|
||||
# mise à jour
|
||||
estep "Maj dépôt $URL:$BRANCH --> $DEST"
|
||||
|
@ -758,6 +771,28 @@ function build_update_apps() {
|
|||
git clone -o "$ORIGIN" -b "$BRANCH" "$URL" "$DEST" || { eend; return 1; }
|
||||
fi
|
||||
|
||||
if [ -z "$TYPE" ]; then
|
||||
# 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
|
||||
if [ -f "$DEST/composer.json" ]; then TYPE=composer
|
||||
else TYPE=none
|
||||
fi
|
||||
fi
|
||||
|
||||
elif [ -n "$SRC" ]; then
|
||||
if [ -d "$SRC" ]; then
|
||||
local -a rsync_opts; rsync_opts=(-a --delete --exclude .git/ --delete-excluded)
|
||||
estep "Synchro $SRC/ --> $DEST"
|
||||
rsync "${rsync_opts[@]}" "$SRC/" "$DEST/" || { eend; return 1; }
|
||||
elif [ -f "$SRC" ]; then
|
||||
local -a rsync_opts; rsync_opts=(-a)
|
||||
estep "Synchro $SRC --> $DEST"
|
||||
rsync "${rsync_opts[@]}" "$SRC" "$DEST/" || { eend; return 1; }
|
||||
else
|
||||
eerror "$app: $SRC: répertoire/fichier introuvable"
|
||||
eend; return 1
|
||||
fi
|
||||
|
||||
if [ -z "$TYPE" ]; then
|
||||
# possible de détecter le type quand on a le projet
|
||||
# en cas de maj ici, mettre à jour aussi le code ci-dessus
|
||||
|
@ -765,6 +800,10 @@ function build_update_apps() {
|
|||
else TYPE=none
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
# ne devrait pas se produire
|
||||
die "ni URL ni SRC ne sont définis"
|
||||
fi
|
||||
|
||||
after_updates="${var}_AFTER_UPDATE"
|
||||
|
|
Loading…
Reference in New Issue