diff --git a/pff b/pff index 3e30cb2..3a944a5 100755 --- a/pff +++ b/pff @@ -944,7 +944,7 @@ function new_cmd() { function patch_cmd() { local commit_policy="$1" pffdir="$2" local gitproject was_patched eop_version - local version profile rcfile curdir workdir controldir + local version profile rcfile curdir workdir controlfile control local -a profiles vlfiles tmpfiles ensure_pffdir pffdir "$pffdir" @@ -983,10 +983,9 @@ function patch_cmd() { # il faut patcher les fichiers du profil etitle "Intégration de la version $version dans le profil $profile" [ -n "$rcfile" ] || ac_set_tmpfile rcfile + [ -n "$controlfile" ] || ac_set_tmpfile controlfile [ -n "$workdir" ] && ac_clean "$workdir" ac_set_tmpdir workdir - [ -n "$controldir" ] && ac_clean "$controldir" - ac_set_tmpdir controldir curdir="$(pwd)" cd "$workdir" git init -q . @@ -1046,17 +1045,32 @@ function patch_cmd() { [ -f ~/.bashrc ] && . ~/.bashrc $(qvals source "$ULIBDIR/ulib") urequire DEFAULTS -function abort() { $(qvals touch "$controldir/ABORT"); exit; } -function a() { abort \"\$@\"; } # raccourci pour abort -function d() { exit; } # raccourci pour done +function Commit() { echo COMMIT >$(qvals "$controlfile"); exit; } +# raccourcis pour Commit +function C() { Commit \"\$@\"; } +function c() { Commit \"\$@\"; } +function Abort() { echo ABORT >$(qvals "$controlfile"); exit; } +# raccourcis pour Abort +function A() { Abort \"\$@\"; } +function a() { Abort \"\$@\"; } $(qvals cd "$workdir") $(qvals eerror "Une erreur s'est produite: examinez la situation et faites les corrections nécessaires") -$(qvals eimportant "Puis tapez exit pour valider l'intégration de la version") -$(qvals eimportant "Sinon, tapez abort pour arrêter l'intégration de cette version") +$(qvals eimportant "Puis tapez ${COULEUR_VERTE}Commit${COULEUR_NORMALE} pour valider l'intégration de la version") +$(qvals eimportant "Sinon, tapez ${COULEUR_ROUGE}Abort${COULEUR_NORMALE} pour arrêter l'intégration de cette version") " + >"$controlfile" "${SHELL:-bash}" --rcfile "$rcfile" + control="$(<"$controlfile")" + if [ -z "$control" ]; then + # demander à l'utilisateur sa décision + eerror "Vous n'avez pas terminé votre session par ${COULEUR_VERTE}Commit${COULEUR_NORMALE} ou ${COULEUR_ROUGE}Abort${COULEUR_NORMALE}" + ask_yesno "Voulez-vous valider l'intégration de la version?" N && control=COMMIT || control=ABORT + fi + if [ "$control" == ABORT ]; then + enote "Vous pouvez reprendre l'intégration de la version $version avec la commande pff -g" + break # abort + fi fi - [ -f "$controldir/ABORT" ] && break # récupérer les versions modifiées et supprimer les fichiers de patch for vlfile in "${vlfiles[@]}"; do setx pfile=get_pfile "${vlfile%__pv-${version}__}" "$profile" "$pffdir"