foreach: ajout des raccourcis -G et -C
This commit is contained in:
parent
cbb34ecd3f
commit
7e26ae1e0c
50
foreach
50
foreach
|
@ -74,10 +74,18 @@ OPTIONS
|
|||
Si l'expansion est désactivée, il faut protéger le caractère \$ pour
|
||||
qu'il soit traité, e.g, avec les examples ci-dessus:
|
||||
$scriptname -n '*.c' 'cp \"\$item\" dest/dir'
|
||||
-t, --title
|
||||
--no-title
|
||||
--title
|
||||
--pt, --parent-title
|
||||
--nt, --no-title
|
||||
Afficher (resp. ne pas afficher) chaque correspondance avant de lancer
|
||||
la commande. Par défaut, l'affichage est effectué."
|
||||
la commande. Par défaut, l'affichage est effectué.
|
||||
Avec --parent-title, pour chaque correspondance afficher plutôt le
|
||||
répertoire parent (valide uniquement avec l'option -p)
|
||||
-G, --git-projects
|
||||
Equivalent à '--ptitle -p */.git --' e.g '$scriptname -G git pull' pour
|
||||
mettre à jour les dépôts situés dans un répertoire
|
||||
-C, --composer-projects
|
||||
Equivalent à '--ptitle -p */composer.json --'"
|
||||
}
|
||||
|
||||
basedir=
|
||||
|
@ -85,7 +93,8 @@ match=auto
|
|||
changedir=
|
||||
parentdir=
|
||||
expand=1
|
||||
title=1
|
||||
title=auto
|
||||
shortcut=
|
||||
args=(+
|
||||
--help '$exit_with display_help'
|
||||
-b:,--basedir: basedir=
|
||||
|
@ -97,18 +106,31 @@ args=(+
|
|||
-s,--string match=string
|
||||
-x,--expand expand=1
|
||||
-n,--no-expand expand=
|
||||
-t,--title title=1
|
||||
--no-title title=
|
||||
--title title=1
|
||||
--pt, --parent-title title=p
|
||||
--nt, --no-title title=
|
||||
-G,--git-projects shortcut=git
|
||||
-C,--composer-projects shortcut=composer
|
||||
)
|
||||
parse_args "$@"; set -- "${args[@]}"
|
||||
|
||||
case "$shortcut" in
|
||||
git)
|
||||
set -- */.git -- "$@"
|
||||
parentdir=1
|
||||
[ "$title" == auto ] && title=p
|
||||
;;
|
||||
composer)
|
||||
set -- */composer.json -- "$@"
|
||||
parentdir=1
|
||||
[ "$title" == auto ] && title=p
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$match" == auto ]; then
|
||||
if [ -n "$changedir" ]; then
|
||||
match=dir
|
||||
else
|
||||
match=all
|
||||
fi
|
||||
[ -n "$changedir" ] && match=dir || match=all
|
||||
fi
|
||||
[ "$title" == auto ] && title=1
|
||||
|
||||
alt_syntax=
|
||||
for sep in "$@"; do
|
||||
|
@ -175,7 +197,11 @@ fi
|
|||
[ -n "$title" ] && einfo "${#items[@]} correspondance(s) trouvée(s)"
|
||||
let index=0
|
||||
for item in "${items[@]}"; do
|
||||
[ -n "$title" ] && etitle "$item"
|
||||
if [ -n "$parentdir" -a "$title" == p ]; then
|
||||
etitle "$(dirname -- "$item")"
|
||||
elif [ -n "$title" ]; then
|
||||
etitle "$item"
|
||||
fi
|
||||
i="$item"
|
||||
setx file=abspath "$item"
|
||||
setx dir=dirname -- "$file"
|
||||
|
|
Loading…
Reference in New Issue