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