support des mises à jour en mode devel
This commit is contained in:
parent
60a4c73857
commit
f508dae60f
76
dk
76
dk
|
@ -122,9 +122,12 @@ OPTIONS build
|
|||
-g, --ug, --no-update-apps
|
||||
ne pas mettre à jour les dépôts dépendants. ces dépôts sont définis dans
|
||||
le fichier update-apps.conf qui a le format suivant:
|
||||
DEFAULT_ORIGIN=
|
||||
DEFAULT_BRANCH=
|
||||
DEFAULT_DEVEL_SRCDIR=
|
||||
APPS=() # liste d'applications à mettre à jour
|
||||
app_URL= # url du dépôt
|
||||
app_DEVEL_SRCDIR= # répertoire source en mode devel
|
||||
app_DEST= # répertoire dans lequel faire le checkout
|
||||
app_PROFILE_ORIGIN= # origine spécifique à un profil
|
||||
app_PROFILE_BRANCH= # branche spécifique à un profil
|
||||
|
@ -134,6 +137,10 @@ OPTIONS build
|
|||
app_AFTER_UPDATE=() # liste de commandes à lancer après le checkout
|
||||
-u, --uu, --update-apps-only
|
||||
Ne faire que la mise à jour depuis les dépôts dépendants.
|
||||
-w, --ww, --update-apps-devel
|
||||
Faire la mise à jour en mode devel: le projet ainsi que ses fichiers des
|
||||
répertoires vendor/lib et vendor/ur sont synchronisés via rsync depuis
|
||||
\$DEFAULT_DEVEL_SRCDIR qui vaut par défaut \$HOME/wop/php
|
||||
--uo, --update-apps-origin ORIGIN
|
||||
Spécifier l'origine par défaut pour update-apps
|
||||
--ub, --update-apps-branch BRANCH
|
||||
|
@ -145,6 +152,10 @@ OPTIONS deploy
|
|||
(c'est à dire ne pas utiliser l'option --with-registry-auth)
|
||||
|
||||
VARIABLES de update-apps.conf
|
||||
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
|
||||
défaut des projets
|
||||
ORIGIN
|
||||
vaut 'origin' par défaut
|
||||
BRANCH
|
||||
|
@ -355,11 +366,12 @@ BUILD_BUILD=
|
|||
UPDATE_APPS_ORIGIN=
|
||||
UPDATE_APPS_BRANCH=
|
||||
function build_set_options() {
|
||||
case "$1" in
|
||||
u) BUILD_UPDATE_APPS=1; BUILD_BUILD=;;
|
||||
b) BUILD_UPDATE_APPS=; BUILD_BUILD=1;;
|
||||
*) BUILD_UPDATE_APPS=1; BUILD_BUILD=1;;
|
||||
esac
|
||||
BUILD_BUILD=
|
||||
BUILD_UPDATE_APPS=
|
||||
BUILD_UPDATE_DEVEL=
|
||||
[[ "$1" == *b* ]] && BUILD_BUILD=1
|
||||
[[ "$1" == *u* ]] && BUILD_UPDATE_APPS=1
|
||||
[[ "$1" == *w* ]] && BUILD_UPDATE_DEVEL=1
|
||||
UPDATE_APPS_ORIGIN="$2"
|
||||
UPDATE_APPS_BRANCH="$3"
|
||||
}
|
||||
|
@ -403,6 +415,7 @@ function build_update_apps() {
|
|||
#XXX à terme, on déploiera la branche master en prod
|
||||
[ -z "$DEFAULT_BRANCH" -a "$PROFILE" == prod ] && DEFAULT_BRANCH=develop #master
|
||||
[ -z "$DEFAULT_BRANCH" ] && DEFAULT_BRANCH=develop
|
||||
DEFAULT_DEVEL_SRCDIR="$HOME/wop/php"
|
||||
APPS=()
|
||||
[ -f update-apps.conf ] && source ./update-apps.conf
|
||||
[ ${#APPS[*]} -gt 0 ] || return 0
|
||||
|
@ -415,7 +428,7 @@ function build_update_apps() {
|
|||
esac
|
||||
|
||||
etitle "Mise à jour des dépendances"
|
||||
local app var type url dest branch after_update after_updates
|
||||
local app var type url devel_srcdir dest branch after_update after_updates
|
||||
for app in "${APPS[@]}"; do
|
||||
etitle "$app"
|
||||
|
||||
|
@ -427,6 +440,9 @@ function build_update_apps() {
|
|||
eend; return 1
|
||||
}
|
||||
|
||||
devel_srcdir="${var}_DEVEL_SRCDIR"; devel_srcdir="${!devel_srcdir}"
|
||||
[ -n "$devel_srcdir" ] || devel_srcdir="$DEFAULT_DEVEL_SRCDIR/${url##*/}"
|
||||
|
||||
dest="${var}_DEST"; dest="${!dest}"
|
||||
[ -n "$dest" ] || dest="$app/b"
|
||||
mkdir -p "$dest" || { eend; return 1; }
|
||||
|
@ -440,18 +456,35 @@ function build_update_apps() {
|
|||
[ -n "$branch" ] || branch="$DEFAULT_BRANCH"
|
||||
|
||||
dest="$dest/$app"
|
||||
if [ ! -d "$dest" ]; then
|
||||
# clonage initial
|
||||
estep "Clonage $url:$branch --> $dest"
|
||||
git clone -o "$origin" -b "$branch" "$url" "$dest" || { eend; return 1; }
|
||||
if [ -n "$BUILD_UPDATE_DEVEL" ]; then
|
||||
# synchronisation en mode devel
|
||||
local -a rsync_opts; rsync_opts=(-a --delete --exclude .git/ --delete-excluded)
|
||||
estep "Synchro $devel_srcdir --> $dest"
|
||||
rsync "${rsync_opts[@]}" "$devel_srcdir/" "$dest" || { eend; return 1; }
|
||||
local -a depdirs; local depdir pname
|
||||
setx -a depdirs=ls -d "$dest/vendor/"{lib,ur}/* 2>/dev/null
|
||||
for depdir in "${depdirs[@]}"; do
|
||||
[ -L "$depdir" ] && rm "$depdir"
|
||||
pname="${depdir#$dest/vendor/}"; pname="${pname/\//-}"
|
||||
estep "Synchro $DEFAULT_DEVEL_SRCDIR/$pname --> $depdir"
|
||||
rsync "${rsync_opts[@]}" --exclude /vendor/ "$DEFAULT_DEVEL_SRCDIR/$pname/" "$depdir"
|
||||
done
|
||||
else
|
||||
# mise à jour
|
||||
estep "Maj dépôt $url:$branch --> $dest"
|
||||
setx cwd=pwd
|
||||
cd "$dest"
|
||||
git fetch --all -p -f || { eend; return 1; }
|
||||
git reset --hard "$origin/$branch" || { eend; return 1; }
|
||||
cd "$cwd"
|
||||
if [ -d "$dest" -a -d "$dest/.git" ]; then
|
||||
# mise à jour
|
||||
estep "Maj dépôt $url:$branch --> $dest"
|
||||
setx cwd=pwd
|
||||
cd "$dest"
|
||||
git fetch --all -p -f || { eend; return 1; }
|
||||
git reset --hard "$origin/$branch" || { eend; return 1; }
|
||||
cd "$cwd"
|
||||
else
|
||||
# reliquat mode devel?
|
||||
[ -d "$dest" ] && rm -rf "$dest"
|
||||
# clonage initial
|
||||
estep "Clonage $url:$branch --> $dest"
|
||||
git clone -o "$origin" -b "$branch" "$url" "$dest" || { eend; return 1; }
|
||||
fi
|
||||
fi
|
||||
|
||||
type="${var}_TYPE"; type="${!type}"
|
||||
|
@ -477,8 +510,10 @@ function build_update_apps() {
|
|||
composer=/usr/bin/composer
|
||||
[ -x "$dest/composer.phar" ] && composer="$dest/composer.phar"
|
||||
|
||||
estep "Installation des dépendances composer"
|
||||
"$composer" -d"$dest" install ${PRODUCTION:+--no-dev -o} || { eend; return 1; }
|
||||
if [ -z "$BUILD_UPDATE_DEVEL" ]; then
|
||||
estep "Installation des dépendances composer"
|
||||
"$composer" -d"$dest" install ${PRODUCTION:+--no-dev -o} || { eend; return 1; }
|
||||
fi
|
||||
fi
|
||||
|
||||
for after_update in "${after_updates[@]}"; do
|
||||
|
@ -944,6 +979,7 @@ NO_CACHE=
|
|||
HOST=
|
||||
WITH_REGISTRY_AUTH=1
|
||||
update_apps_mode=ub
|
||||
update_apps_devel=
|
||||
update_apps_origin=
|
||||
update_apps_branch=
|
||||
args=(
|
||||
|
@ -960,6 +996,7 @@ args=(
|
|||
-h:,--host: HOST=
|
||||
-g,--ug,--no-update-apps update_apps_mode=b
|
||||
-u,--uu,--update-apps-only update_apps_mode=u
|
||||
-w,--uw,--update-apps-devel update_apps_devel=1
|
||||
--uo:,--update-apps-origin: update_apps_origin=
|
||||
--ub:,--update-apps-branch: update_apps_branch=
|
||||
-l,--without-registry-auth WITH_REGISTRY_AUTH=
|
||||
|
@ -987,6 +1024,7 @@ fi
|
|||
[ -n "$PROFILE" ] || PROFILE="$DEFAULT_PROFILE"
|
||||
|
||||
[ -n "$chdir" ] && { cd "$chdir" || die; }
|
||||
update_apps_mode="${update_apps_mode}${update_apps_devel:+w}"
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
[ "$1" == -- ] && { shift; continue; }
|
||||
|
|
Loading…
Reference in New Issue