cx-updatedev: ajout des mises à jour récursives

This commit is contained in:
Jephté Clain 2019-06-05 15:45:37 +04:00
parent 4c58b127af
commit aa4eb4a481
1 changed files with 33 additions and 3 deletions

View File

@ -27,7 +27,10 @@ OPTIONS
Supprimer les répertoires et les faire recréer par composer i, Supprimer les répertoires et les faire recréer par composer i,
uniquement s'il s'agit de liens uniquement s'il s'agit de liens
-u, --update -u, --update
Supprimer les répertoires et les faire recréer par composer u" Supprimer les répertoires et les faire recréer par composer u
--ru, --recursive-update
Mettre à jour de façon récursive tous les projets dépendants.
NB: les modifications seront automatiquement enregistrées dans git."
} }
fake= fake=
@ -35,6 +38,7 @@ verbose=1
action= action=
args=( args=(
--help '$exit_with display_help' --help '$exit_with display_help'
-d:,--project-dir: projdir=
-n,--fake fake=1 -n,--fake fake=1
-q,--quiet verbose= -q,--quiet verbose=
-l,--link action=link -l,--link action=link
@ -42,9 +46,16 @@ args=(
-i,--install action=install -i,--install action=install
-j,--reinstall-link action=reinstall-link -j,--reinstall-link action=reinstall-link
-u,--update action=update -u,--update action=update
--ru,--recursive-update action=recursive-update
) )
parse_args "$@"; set -- "${args[@]}" parse_args "$@"; set -- "${args[@]}"
if [ -d "$projdir" ]; then
cd "$projdir"
elif [ -e "$projdir" ]; then
die "$projdir: répertoire introuvable"
fi
found= found=
first=1 first=1
while true; do while true; do
@ -63,10 +74,14 @@ if [ -z "$first" ]; then
fi fi
case "$action" in case "$action" in
install|update) install|update|reinstall-link|recursive-update)
[ -x ./composer.phar ] || die "Impossible de trouver composer.phar" [ -x ./composer.phar ] || die "Impossible de trouver composer.phar"
;; ;;
esac esac
if [ "$action" == recursive-update ]; then
# avec recursive-update, tous les modules doivent être considérés
set --
fi
### ###
@ -91,6 +106,7 @@ function update_with_rsync() {
} }
deps=() deps=()
modules=()
for m in "$@"; do for m in "$@"; do
m="${m#vendor/}" # pour permettre de spécifier le chemin directement m="${m#vendor/}" # pour permettre de spécifier le chemin directement
m="${m//\//-}" m="${m//\//-}"
@ -98,6 +114,7 @@ for m in "$@"; do
ur-*|lib-*) ;; ur-*|lib-*) ;;
*) m="ur-$m";; *) m="ur-$m";;
esac esac
modules+=("$m")
p="${m//-/\/}" p="${m//-/\/}"
check_module check_module
@ -143,7 +160,7 @@ for m in "$@"; do
array_add deps "$p" array_add deps "$p"
eend eend
;; ;;
reinstall-link) reinstall-link|recursive-update)
# Supprimer les liens uniquement... # Supprimer les liens uniquement...
etitle "$m" etitle "$m"
if [ -L "vendor/$p" ]; then if [ -L "vendor/$p" ]; then
@ -187,4 +204,17 @@ update)
./composer.phar u "${deps[@]}" ./composer.phar u "${deps[@]}"
eend eend
;; ;;
recursive-update)
# mettre à jour les dépendances de façon récursives
for m in "${modules[@]}"; do
etitle "Mise à jour récursive: $m"
"$script" -d "../$m" --ru
eend
done
estep "Maj deps"
./composer.phar u
estep "Enregistrement dans git"
pci -A "maj deps"
;;
esac esac