pff: support de NOUPSTREAM

This commit is contained in:
Jephté Clain 2020-10-28 22:45:10 +04:00
parent edf956f1bb
commit c921d2a902
1 changed files with 20 additions and 7 deletions

23
pff
View File

@ -30,6 +30,7 @@ PFFCONFVARS=(
"MKDIRS//Répertoires qui doivent toujours exister" "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" "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" "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 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 que les fichiers ayant l'extension .c situés dans le répertoire du
projet 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 COMMANDES / OPTIONS
Les arguments du script dépendent de la commande utilisée. Les commandes Les arguments du script dépendent de la commande utilisée. Les commandes
supportées sont: supportées sont:
@ -571,8 +579,11 @@ function autoinit() {
local pffdir="$1" profile mkdir local pffdir="$1" profile mkdir
[ -d "$pffdir/pff/Current" ] || mkdir -p "$pffdir/pff/Current" [ -d "$pffdir/pff/Current" ] || mkdir -p "$pffdir/pff/Current"
[ -d "$pffdir/pff/Base" ] || mkdir -p "$pffdir/pff/Base" [ -d "$pffdir/pff/Base" ] || mkdir -p "$pffdir/pff/Base"
# tous les fichiers du profil Base doivent être en lecture seule # 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 '{}' + find "$pffdir/pff/Base" -type f -perm /222 -exec chmod a-w '{}' +
fi
# Créer les répertoires de MKDIRS # Créer les répertoires de MKDIRS
for mkdir in "${MKDIRS[@]}"; do for mkdir in "${MKDIRS[@]}"; do
mkdir -p "$pffdir/$mkdir" mkdir -p "$pffdir/$mkdir"
@ -1144,7 +1155,7 @@ function patch_cmd() {
setx rfile=get_rfile "$bfile" "$pffdir" setx rfile=get_rfile "$bfile" "$pffdir"
mkdirof "$rfile" mkdirof "$rfile"
cp -a "$bfile" "$rfile" cp -a "$bfile" "$rfile"
chmod +w "$rfile" [ -z "$NOUPSTREAM" ] && chmod +w "$rfile"
done done
git add -A git add -A
[ -n "$(git status --porcelain)" ] && git commit -qm "Base" [ -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" etitle "Finaliser intégration de la version $version"
for vlfile in "${vlfiles[@]}"; do for vlfile in "${vlfiles[@]}"; do
bfile="${vlfile%__pv-${version}__}" bfile="${vlfile%__pv-${version}__}"
chmod +w "$bfile" [ -z "$NOUPSTREAM" ] && chmod +w "$bfile"
mv "$vlfile" "$bfile" mv "$vlfile" "$bfile"
chmod a-w "$bfile" [ -z "$NOUPSTREAM" ] && chmod a-w "$bfile"
done done
eop_version=1 eop_version=1
VERSION="$version" VERSION="$version"
@ -1308,7 +1319,9 @@ function add_global__link() {
# Création des liens pour $rfile # Création des liens pour $rfile
mkdirof "$bfile" || return mkdirof "$bfile" || return
mv "$pfile" "$bfile" || return mv "$pfile" "$bfile" || return
if [ -z "$NOUPSTREAM" ]; then
chmod a-w "$bfile" || return chmod a-w "$bfile" || return
fi
[ -L "$pfile" ] || ln -sf "$plink" "$pfile" || return [ -L "$pfile" ] || ln -sf "$plink" "$pfile" || return
mkdirof "$cfile" || return mkdirof "$cfile" || return
[ -L "$cfile" ] || ln -sf "$clink" "$cfile" || return [ -L "$cfile" ] || ln -sf "$clink" "$cfile" || return
@ -1412,7 +1425,7 @@ function add_local__link() {
cp "$Cfile" "$Pfile" cp "$Cfile" "$Pfile"
else else
cp "$bfile" "$Pfile" cp "$bfile" "$Pfile"
chmod +w "$Pfile" [ -z "$NOUPSTREAM" ] && chmod +w "$Pfile"
fi fi
# mettre à jour le profil courant # mettre à jour le profil courant
setx cfile=get_cfile "$pfile" "$pffdir" setx cfile=get_cfile "$pfile" "$pffdir"