From c921d2a9024c77579f5c958f2fc807f7a04736cd Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Wed, 28 Oct 2020 22:45:10 +0400 Subject: [PATCH] pff: support de NOUPSTREAM --- pff | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/pff b/pff index d3c39a3..da87e0c 100755 --- a/pff +++ b/pff @@ -30,6 +30,7 @@ PFFCONFVARS=( "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" + "NOUPSTREAM=//Indiquer qu'il n'y a pas de fichiers upstream. pff est uniquement utilisé pour gérer des profils de fichiers" ) if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then @@ -190,6 +191,13 @@ pff: que les fichiers ayant l'extension .c situés dans le répertoire du projet + NOUPSTREAM -- indiquer qu'il n'y a pas de distribution upstream ni de + fichiers origine. pff est alors uniquement utilisé pour gérer des + profils de fichier. + Pour le moment, la seule différence est que le mode des fichiers de + pff/Base n'est pas forcé à 0444. Ainsi, ces fichiers sont traités au + même titre que ceux du répertoire pff/Common + COMMANDES / OPTIONS Les arguments du script dépendent de la commande utilisée. Les commandes supportées sont: @@ -571,8 +579,11 @@ function autoinit() { local pffdir="$1" profile mkdir [ -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 - find "$pffdir/pff/Base" -type f -perm /222 -exec chmod a-w '{}' + + # tous les fichiers du profil Base doivent être en lecture seule, sauf si + # NOUPSTREAM=1 + 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" @@ -1144,7 +1155,7 @@ function patch_cmd() { setx rfile=get_rfile "$bfile" "$pffdir" mkdirof "$rfile" cp -a "$bfile" "$rfile" - chmod +w "$rfile" + [ -z "$NOUPSTREAM" ] && chmod +w "$rfile" done git add -A [ -n "$(git status --porcelain)" ] && git commit -qm "Base" @@ -1249,9 +1260,9 @@ $(qvals eimportant "Sinon, tapez ${COULEUR_ROUGE}Abort${COULEUR_NORMALE} pour ar etitle "Finaliser intégration de la version $version" for vlfile in "${vlfiles[@]}"; do bfile="${vlfile%__pv-${version}__}" - chmod +w "$bfile" + [ -z "$NOUPSTREAM" ] && chmod +w "$bfile" mv "$vlfile" "$bfile" - chmod a-w "$bfile" + [ -z "$NOUPSTREAM" ] && chmod a-w "$bfile" done eop_version=1 VERSION="$version" @@ -1308,7 +1319,9 @@ function add_global__link() { # Création des liens pour $rfile mkdirof "$bfile" || return mv "$pfile" "$bfile" || return - chmod a-w "$bfile" || return + if [ -z "$NOUPSTREAM" ]; then + chmod a-w "$bfile" || return + fi [ -L "$pfile" ] || ln -sf "$plink" "$pfile" || return mkdirof "$cfile" || return [ -L "$cfile" ] || ln -sf "$clink" "$cfile" || return @@ -1412,7 +1425,7 @@ function add_local__link() { cp "$Cfile" "$Pfile" else cp "$bfile" "$Pfile" - chmod +w "$Pfile" + [ -z "$NOUPSTREAM" ] && chmod +w "$Pfile" fi # mettre à jour le profil courant setx cfile=get_cfile "$pfile" "$pffdir"