From 111463a8611d3cfd8037c59afd95ffac2df16627 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Thu, 27 May 2021 11:40:39 +0400 Subject: [PATCH] pff: ajout AUTO_CMDS et NEW_CMDS, supprimer MKDIRS --- pff | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/pff b/pff index 1f21a09..bda8471 100755 --- a/pff +++ b/pff @@ -26,10 +26,12 @@ PFFCONFVARS=( "DISTTYPE=auto//Type de distribution upstream: full ou patch" -a "ORIGEXTS=//Extensions origines" + "AUTO_CMDS//Commandes à lancer lors des vérifications automatiques" + "NEW_CMDS//Commandes à lancer avant l'action new" "PROTECTS=//Fichiers locaux à protéger lors de l'intégration au format rsync e.g /dir/, /file, etc." - "MKDIRS//Répertoires qui doivent toujours exister" "FILTERS//Filtres appliqués aux fichiers lors de l'intégration, de la forme 'filespec:filter'. Cf la doc pour le détail du format" "NOMERGES=//Fichiers qu'il ne faut pas chercher à fusionner. Cf la doc pour le détail du format" + -s "NOUPSTREAM=//Indiquer qu'il n'y a pas de fichiers upstream. pff est uniquement utilisé pour gérer des profils de fichiers" ) @@ -605,7 +607,7 @@ function select_profile() { function autoinit() { # vérifications automatiques: créer les répertoires de base nécessaire au # fonctionnement de pff dans le projet pff $1 - local pffdir="$1" profile mkdir + local pffdir="$1" profile [ -d "$pffdir/pff/Current" ] || mkdir -p "$pffdir/pff/Current" [ -d "$pffdir/pff/Base" ] || mkdir -p "$pffdir/pff/Base" # tous les fichiers du profil Base doivent être en lecture seule, sauf si @@ -613,10 +615,14 @@ function autoinit() { if [ -z "$NOUPSTREAM" ]; then find "$pffdir/pff/Base" -type f -perm /222 -exec chmod a-w '{}' + fi - # Créer les répertoires de MKDIRS - for mkdir in "${MKDIRS[@]}"; do - mkdir -p "$pffdir/$mkdir" + # Lancer les commandes AUTO_CMDS + local cwd cmd + cwd="$(pwd)" + cd "$pffdir" + for cmd in "${AUTO_CMDS[@]}"; do + eval "$cmd" done + cd "$cwd" return 0 } @@ -859,6 +865,15 @@ function new_cmd() { new__prepare_archive srcdir version "$archive" "$version" "$unwrap" [ "$DISTTYPE" == full ] && full=1 + ## Lancer les commandes + local cwd cmd + cwd="$(pwd)" + cd "$pffdir" + for cmd in "${NEW_CMDS[@]}"; do + eval "$cmd" + done + cd "$cwd" + ## lister les fichiers dans la source et la destination local workdir ac_set_tmpdir workdir