diff --git a/cx-shelldev b/cx-shelldev new file mode 100755 index 0000000..b9700aa --- /dev/null +++ b/cx-shelldev @@ -0,0 +1,54 @@ +#!/bin/bash +# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 +source "$(dirname "$0")/lib/ulib/ulib" || exit 1 +urequire DEFAULTS + +function display_help() { + uecho "$scriptname: ouvrir un shell dans le container + +USAGE + $scriptname [SHELL] + +OPTIONS + -h, -s, --service SERVICE + Spécifier le nom du service sur lequel ouvrir le shell + -d + équivalent à -s db + -w + équivalent à -s web (c'est la valeur par défaut)" +} + +service=web +args=( + --help '$exit_with display_help' + -h:,-s:,--service: service= + -d service=db + -w service=web +) +parse_args "$@"; set -- "${args[@]}" + +[ -n "$service" ] || die "Vous devez spécifier le nom du service" + +found= +first=1 +while true; do + if [ -f composer.json ]; then + found=1 + break + fi + first= + cd .. + if [ "$(pwd)" == "$HOME" ]; then + die "Cette commande ne peut être lancée que depuis un projet Composer" + fi +done +if [ -z "$first" ]; then + enote "Le répertoire du projet est $(ppath . ~)" +fi + +setx cid=docker-compose ps -q "$service" 2>/dev/null || die "$service: service introuvable" + +cmd=("$@") +[ ${#cmd[*]} -gt 0 ] || cmd=(bash) + +docker-compose exec "$service" "${cmd[@]}" diff --git a/cx-updatedev b/cx-updatedev new file mode 100755 index 0000000..a3b1e56 --- /dev/null +++ b/cx-updatedev @@ -0,0 +1,74 @@ +#!/bin/bash +# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 +source "$(dirname "$0")/lib/ulib/ulib" || exit 1 +urequire DEFAULTS + +function display_help() { + uecho "$scriptname: mettre à jour un module ur/* ou lib/* sans utiliser composer + +ça permet de faire du développement plus rapidement sans utiliser les dépôts de +type path + +USAGE + $scriptname modules... + +OPTIONS + -n, --fake + Afficher simplement ce qui serait fait + -q, --quiet + Ne pas lancer rsync en mode verbose" +} + +fake= +verbose=1 +args=( + --help '$exit_with display_help' + -n,--fake fake=1 + -q,--quiet verbose= +) +parse_args "$@"; set -- "${args[@]}" + +found= +first=1 +while true; do + if [ -f composer.json ]; then + found=1 + break + fi + first= + cd .. + if [ "$(pwd)" == "$HOME" ]; then + die "Cette commande ne peut être lancée que depuis un projet Composer" + fi +done +if [ -z "$first" ]; then + enote "Le répertoire du projet est $(ppath . ~)" +fi + +if [ $# -eq 0 ]; then + setx -a ms=list_dirs vendor "ur/*" "lib/*" + set -- "${ms[@]}" +fi + +for m in "$@"; do + m="${m//\//-}" + case "$m" in + ur-*|lib-*) ;; + *) m="ur-$m";; + esac + p="${m//-/\/}" + + [ -L "vendor/$p" ] && continue + + etitle "$m" + [ -d "../$m" ] || die "$m: module introuvable" + rsync_args=( + -a ${fake:+-n} ${verbose:+-v} + --delete + -f "- /.git/" + -f "- /vendor/" + "../$m/" "vendor/$p" + ) + rsync "${rsync_args[@]}" + eend +done