diff --git a/cx-updatedev b/cx-updatedev index ed5b3b1..b6e7b9b 100755 --- a/cx-updatedev +++ b/cx-updatedev @@ -19,8 +19,12 @@ OPTIONS Ne pas lancer rsync en mode verbose -l, --link Transformer les clones de dépôts en liens directs vers les projets - -c, --copy - Transformer les liens directs vers les projets en copies des projets" + -k, --copy + Transformer les liens directs vers les projets en copies des projets + -i, --install + Supprimer les répertoires et les faire recréer par composer i + -u, --update + Supprimer les répertoires et les faire recréer par composer u" } fake= @@ -31,7 +35,9 @@ args=( -n,--fake fake=1 -q,--quiet verbose= -l,--link action=link - -c,--copy action=copy + -k,--copy action=copy + -i,--install action=install + -u,--update action=update ) parse_args "$@"; set -- "${args[@]}" @@ -52,6 +58,12 @@ if [ -z "$first" ]; then enote "Le répertoire du projet est $(ppath . ~)" fi +case "$action" in +install|update) + [ -x ./composer.phar ] || die "Impossible de trouver composer.phar" + ;; +esac + ### if [ $# -eq 0 ]; then @@ -74,6 +86,7 @@ function update_with_rsync() { rsync "${rsync_args[@]}" } +deps=() for m in "$@"; do m="${m#vendor/}" # pour permettre de spécifier le chemin directement m="${m//\//-}" @@ -115,6 +128,20 @@ for m in "$@"; do update_with_rsync eend ;; + install) + # Supprimer les liens et répertoires... + etitle "$m" + [ -e "vendor/$p" ] && rm -rf "vendor/$p" + array_add deps "$p" + eend + ;; + update) + # Supprimer les liens et répertoires... + etitle "$m" + [ -e "vendor/$p" ] && rm -rf "vendor/$p" + array_add deps "$p" + eend + ;; *) # Action par défaut: ignorer les liens et synchroniser les copies if [ ! -L "vendor/$p" ]; then @@ -125,3 +152,18 @@ for m in "$@"; do ;; esac done + +case "$action" in +install) + # ... puis installer les dépendances + etitle "Installation des dépendances" + ./composer.phar i + eend + ;; +update) + # ... puis mettre à jour les dépendances + etitle "Mise à jour des dépendances" + ./composer.phar u "${deps[@]}" + eend + ;; +esac