From a8d8acaa3cf3f667b3c710aff8f78af8b908e050 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Tue, 4 Jun 2024 09:01:24 +0400 Subject: [PATCH] modifs.mineures sans commentaires --- bin/np | 23 ++++++++++++++++++----- bin/npu | 6 ++++-- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/bin/np b/bin/np index c208111..e567f2b 100755 --- a/bin/np +++ b/bin/np @@ -3,6 +3,21 @@ source "$(dirname -- "$0")/../load.sh" || exit 1 require: git +function git_status() { + local status r cwd + status="$(git status "$@" 2>&1)"; r=$? + if [ -n "$status" ]; then + setx cwd=ppath2 "$(pwd)" "$OrigCwd" + etitle "$cwd" + if [ $r -eq 0 ]; then + echo "$status" + else + eerror "$status" + fi + eend + fi +} + chdir= all= args=( @@ -15,6 +30,7 @@ Si l'option -a est utilisée, ce script accepte comme arguments une liste de pat ) parse_args "$@"; set -- "${args[@]}" +setx OrigCwd=pwd if [ -n "$chdir" ]; then cd "$chdir" || die fi @@ -34,15 +50,12 @@ if [ -n "$all" ]; then setx cwd=pwd for dir in "${dirs[@]}"; do cd "$dir" || die - setx status=git status --porcelain + git_status --porcelain cd "$cwd" - if [ -n "$status" ]; then - etitle "$dir" echo "$status" - fi done else # répertoire courant uniquement args=() isatty || args+=(--porcelain) - git status "${args[@]}" + git_status "${args[@]}" fi diff --git a/bin/npu b/bin/npu index 072a78a..02c452b 100755 --- a/bin/npu +++ b/bin/npu @@ -3,7 +3,8 @@ source "$(dirname -- "$0")/../load.sh" || exit 1 require: git -projdir= +basedir= +all= remote= autoff=1 reset=ask @@ -14,7 +15,8 @@ mettre à jour les branches locales si la branche courante est une branche wip, écraser les modifications locales éventuelles après un avertissement. sinon, ne mettre à jour la branche locale qu'en mode fast-forward" #"usage" - -d:,--projdir projdir= "spécifier le projet dans lequel faire la mise à jour" + -d:,--chdir:BASEDIR basedir= "répertoire dans lequel se placer avant de lancer les opérations" + -a,--all all=1 "faire l'opération sur tous les sous-répertoires de BASEDIR qui sont des dépôts git" -o:,--remote remote= "spécifier le remote depuis lequel faire le fetch" --autoff autoff=1 "s'il n'y a pas de modifications locales, faire un fast-forward de toutes les branches traquées. c'est l'option par défaut." -l,--no-autoff autoff= "ne pas faire de fast-forward automatique des branches traquées. seule la branche courante est mise à jour"