diff --git a/pff b/pff index dc042d8..47ac7b1 100755 --- a/pff +++ b/pff @@ -98,6 +98,16 @@ non. Les autres fichiers qui proviennent de la distribution sont appelés extension particulière pour indiquer qu'ils sont modifiables sont appelés 'fichiers origine'. +Les fichiers sont classés dans des profils spécifiques. Les profils reconnus +sont: +- Base est le profil des fichiers upstream non modifiés. Les fichiers origine + sont intégrés dans ce profil. +- Common est le profil des fichiers upstream modifiés. Tous les fichiers + devraient être modifiés dans ce profil. +- Les autres profils sont basés sur Common en priorité puis sur Base en cas de + non existence dans Common. Il peut s'agir de profils comme prod ou test, qui + contiennent des modifications spécifiques à différents cas d'utilisation. + USAGE $scriptname [options] @@ -163,7 +173,7 @@ supportées sont: -a, --add-global FILES... Ajouter/Identifier un fichier comme un fichier local pour tous les - profils. + profils. Le fichier est copié dans le profil Base. -L, --locals [WORKDIR] Lister les fichiers locaux @@ -189,6 +199,7 @@ supportées sont: # pfile: le chemin absolu du fichier dans le projet # rfile: le chemin relatif du fichier dans le projet # bfile: le chemin absolu du fichier dans pff/Base/ +# Cfile: le chemin absolu du fichier dans pff/Common/ # cfile: le chemin absolu du fichier dans pff/Current/ # Pfile: le chemin absolu du fichier dans pff/ANYPROFILE/ # plink: la destination du lien pfile @@ -302,6 +313,7 @@ function get_pfile() { echo "$pffdir/pff/$profile/$pfile" } function get_bfile() { get_pfile "$1" Base "$2"; } +function get_Cfile() { get_pfile "$1" Common "$2"; } function get_cfile() { get_pfile "$1" Current "$2"; } function get_vlfiles() { @@ -364,6 +376,8 @@ function select_profile() { src="$pffdir/pff/Current/$lfile" if [ -f "$pffdir/pff/$profile/$lfile" ]; then dest="$profile/$lfile" + elif [ "$profile" != Common -a -f "$pffdir/pff/Common/$lfile" ]; then + dest="Common/$lfile" else dest="Base/$lfile" fi @@ -870,8 +884,14 @@ function add_local__link() { setx Pfile=get_pfile "$pfile" "$profile" "$pffdir" [ -e "$Pfile" ] && return 0 # créer le fichier local + setx Cfile=get_Cfile "$pfile" "$pffdir" mkdirof "$Pfile" - cp "$bfile" "$Pfile" + if [ -e "$Cfile" ]; then + # copier depuis le profil Common par défaut + cp "$Cfile" "$Pfile" + else + cp "$bfile" "$Pfile" + fi # mettre à jour le profil courant setx cfile=get_cfile "$pfile" "$pffdir" setx clink=multiups "Current/$rfile" "$profile/$rfile"