support de l'édition dans le profil ALL et rajouter les raccourcis -P, -T, -A
This commit is contained in:
parent
6b33929b17
commit
eee9a65c70
60
pff
60
pff
|
@ -55,6 +55,10 @@ function __pff_profiles() {
|
||||||
pffdir="$(dirname -- "$pffdir")"
|
pffdir="$(dirname -- "$pffdir")"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
function __pfe_profiles() {
|
||||||
|
echo ALL
|
||||||
|
__pff_profiles "$@" | grep -vxF Base
|
||||||
|
}
|
||||||
function __pfs_completion() {
|
function __pfs_completion() {
|
||||||
local cur
|
local cur
|
||||||
_get_comp_words_by_ref cur
|
_get_comp_words_by_ref cur
|
||||||
|
@ -65,12 +69,12 @@ function __pfe_completion() {
|
||||||
local cur prev opt comp
|
local cur prev opt comp
|
||||||
_get_comp_words_by_ref cur prev
|
_get_comp_words_by_ref cur prev
|
||||||
if [[ "$prev" == -*p ]]; then
|
if [[ "$prev" == -*p ]]; then
|
||||||
COMPREPLY=($(compgen -W "$(__pff_profiles)" -- "$cur"))
|
COMPREPLY=($(compgen -W "$(__pfe_profiles)" -- "$cur"))
|
||||||
elif [ "$prev" == --profile ]; then
|
elif [ "$prev" == --profile ]; then
|
||||||
COMPREPLY=($(compgen -W "$(__pff_profiles)" -- "$cur"))
|
COMPREPLY=($(compgen -W "$(__pfe_profiles)" -- "$cur"))
|
||||||
elif [[ "$cur" == -*p* ]]; then
|
elif [[ "$cur" == -*p* ]]; then
|
||||||
comp="${cur#-*p}"; opt="${cur:0:$((${#cur}-${#comp}))}"
|
comp="${cur#-*p}"; opt="${cur:0:$((${#cur}-${#comp}))}"
|
||||||
COMPREPLY=($(compgen -W "$(__pff_profiles "$opt")" -- "$cur"))
|
COMPREPLY=($(compgen -W "$(__pfe_profiles "$opt")" -- "$cur"))
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
complete -F __pfe_completion -o bashdefault -o default pfe
|
complete -F __pfe_completion -o bashdefault -o default pfe
|
||||||
|
@ -80,12 +84,12 @@ function __pff_completion() {
|
||||||
if [ "${COMP_WORDS[1]}" == -e -o "${COMP_WORDS[1]}" == --edit ]; then
|
if [ "${COMP_WORDS[1]}" == -e -o "${COMP_WORDS[1]}" == --edit ]; then
|
||||||
# ne compléter -p que si on est en mode --edit
|
# ne compléter -p que si on est en mode --edit
|
||||||
if [[ "$prev" == -*p ]]; then
|
if [[ "$prev" == -*p ]]; then
|
||||||
COMPREPLY=($(compgen -W "$(__pff_profiles)" -- "$cur"))
|
COMPREPLY=($(compgen -W "$(__pfe_profiles)" -- "$cur"))
|
||||||
elif [ "$prev" == --profile ]; then
|
elif [ "$prev" == --profile ]; then
|
||||||
COMPREPLY=($(compgen -W "$(__pff_profiles)" -- "$cur"))
|
COMPREPLY=($(compgen -W "$(__pfe_profiles)" -- "$cur"))
|
||||||
elif [[ "$cur" == -*p* ]]; then
|
elif [[ "$cur" == -*p* ]]; then
|
||||||
comp="${cur#-*p}"; opt="${cur:0:$((${#cur}-${#comp}))}"
|
comp="${cur#-*p}"; opt="${cur:0:$((${#cur}-${#comp}))}"
|
||||||
COMPREPLY=($(compgen -W "$(__pff_profiles "$opt")" -- "$cur"))
|
COMPREPLY=($(compgen -W "$(__pfe_profiles "$opt")" -- "$cur"))
|
||||||
fi
|
fi
|
||||||
elif [[ "$prev" == -*s ]]; then
|
elif [[ "$prev" == -*s ]]; then
|
||||||
COMPREPLY=($(compgen -W "$(__pff_profiles)" -- "$cur"))
|
COMPREPLY=($(compgen -W "$(__pff_profiles)" -- "$cur"))
|
||||||
|
@ -173,11 +177,11 @@ supportées sont:
|
||||||
Intégrer une distribution complète. Par défaut, les archives avec
|
Intégrer une distribution complète. Par défaut, les archives avec
|
||||||
l'extension .war sont considérées commes des livraisons complètes. Si
|
l'extension .war sont considérées commes des livraisons complètes. Si
|
||||||
la source est un répertoire ou une archive sans extension, l'une des
|
la source est un répertoire ou une archive sans extension, l'une des
|
||||||
options -F ou -P est requise.
|
options -F ou -H est requise.
|
||||||
-P, --patch-archive
|
-H, --patch-archive
|
||||||
Intégrer un patch. Par défaut, les archives avec l'extension .zip sont
|
Intégrer un patch. Par défaut, les archives avec l'extension .zip sont
|
||||||
considérées comme des patches. Si la source est un répertoire ou une
|
considérées comme des patches. Si la source est un répertoire ou une
|
||||||
archive sans extension, l'une des options -F ou -P est requise.
|
archive sans extension, l'une des options -F ou -H est requise.
|
||||||
Avec une distribution de type patch, on considère que les fichiers
|
Avec une distribution de type patch, on considère que les fichiers
|
||||||
livrés ne sont pas des fichiers origines. Il n'y a donc aucun traitement
|
livrés ne sont pas des fichiers origines. Il n'y a donc aucun traitement
|
||||||
particulier: l'archive est simplement intégrée telle quelle.
|
particulier: l'archive est simplement intégrée telle quelle.
|
||||||
|
@ -224,17 +228,23 @@ supportées sont:
|
||||||
-e, --edit FILES...
|
-e, --edit FILES...
|
||||||
Editer des fichiers, implique --add-local
|
Editer des fichiers, implique --add-local
|
||||||
-p, --profile PROFILE
|
-p, --profile PROFILE
|
||||||
Pour les options --add-local et --edit, sélectionner le profil spécifié
|
Pour l'option --edit, sélectionner le profil spécifié comme celui
|
||||||
comme celui concerné pour les fichier mentionnés après cette option. Par
|
concerné pour les fichier mentionnés après cette option. Par exemple:
|
||||||
exemple:
|
|
||||||
$scriptname -e A -pprod B C -ptest D
|
$scriptname -e A -pprod B C -ptest D
|
||||||
Edite le fichier A du profil courant, les fichiers B et C du profil prod
|
Edite le fichier A du profil courant, les fichiers B et C du profil prod
|
||||||
et le fichier D du profil test.
|
et le fichier D du profil test.
|
||||||
Si cette option est utilisée pour sélectionner un fichier dans un autre
|
Le profil ALL est spécial et permet d'éditer le fichier dans tous les
|
||||||
profil, le profil courant est restauré à la fin de la commande.
|
profils *où il existe*, excepté Base parce que ce profil contient des
|
||||||
|
fichiers qui ne devraient pas être modifiés.
|
||||||
|
Pour tous les autres profils, si le fichier n'existe pas dans le profil
|
||||||
|
spécifié il est rajouté dans le profil avant son édition.
|
||||||
Attention: pour que l'option -p/--profile soit correctement reconnue
|
Attention: pour que l'option -p/--profile soit correctement reconnue
|
||||||
avec l'option -e/--edit, il faut que cette dernière option soit
|
avec l'option -e/--edit, il faut que cette dernière option soit
|
||||||
mentionnée en premier sur la ligne de commande.
|
mentionnée en premier sur la ligne de commande.
|
||||||
|
-P, --prod
|
||||||
|
-T, --test
|
||||||
|
-A, --all-profiles
|
||||||
|
Raccourcis pour respectivement -pprod, -ptest et -pALL
|
||||||
|
|
||||||
-d, --diff [DESTP [WORKDIR]]
|
-d, --diff [DESTP [WORKDIR]]
|
||||||
-d, --diff [SRCP DESTP [WORKDIR]]
|
-d, --diff [SRCP DESTP [WORKDIR]]
|
||||||
|
@ -1064,9 +1074,10 @@ function add_local_cmd() {
|
||||||
function edit_cmd() {
|
function edit_cmd() {
|
||||||
local profile="$1"; shift
|
local profile="$1"; shift
|
||||||
local pffdir file rfile pfile Pfile r
|
local pffdir file rfile pfile Pfile r
|
||||||
local -a edits args
|
local -a profiles edits args
|
||||||
|
|
||||||
ensure_pffdir pffdir
|
ensure_pffdir pffdir
|
||||||
|
array_from_lines profiles "$(get_profiles "$pffdir" | grep -vxF Base)"
|
||||||
[ -n "$profile" ] || setx profile=get_current_profile "$pffdir"
|
[ -n "$profile" ] || setx profile=get_current_profile "$pffdir"
|
||||||
enote "Dans le profil $profile:"
|
enote "Dans le profil $profile:"
|
||||||
|
|
||||||
|
@ -1092,6 +1103,15 @@ function edit_cmd() {
|
||||||
r=1
|
r=1
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
if [ "$profile" == ALL ]; then
|
||||||
|
local tmpp
|
||||||
|
for tmpp in "${profiles[@]}"; do
|
||||||
|
setx Pfile=get_pfile "$pfile" "$tmpp" "$pffdir"
|
||||||
|
[ -e "$Pfile" ] || continue
|
||||||
|
estep "Edition de $(ppath "$Pfile")"
|
||||||
|
array_add edits "$Pfile"
|
||||||
|
done
|
||||||
|
else
|
||||||
add_local__link "$pfile" "$profile" "$pffdir" || {
|
add_local__link "$pfile" "$profile" "$pffdir" || {
|
||||||
ewarn "$file: erreur lors de la création du lien local"
|
ewarn "$file: erreur lors de la création du lien local"
|
||||||
r=1
|
r=1
|
||||||
|
@ -1100,9 +1120,14 @@ function edit_cmd() {
|
||||||
setx Pfile=get_pfile "$pfile" "$profile" "$pffdir"
|
setx Pfile=get_pfile "$pfile" "$profile" "$pffdir"
|
||||||
estep "Edition de $(ppath "$Pfile")"
|
estep "Edition de $(ppath "$Pfile")"
|
||||||
array_add edits "$Pfile"
|
array_add edits "$Pfile"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ ${#edits[*]} -gt 0 ]; then
|
||||||
"${EDITOR:-vi}" "${edits[@]}" || r=$?
|
"${EDITOR:-vi}" "${edits[@]}" || r=$?
|
||||||
|
else
|
||||||
|
r=2
|
||||||
|
fi
|
||||||
return $r
|
return $r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1278,7 +1303,7 @@ args=($parse_mode
|
||||||
-V:,--version: version=
|
-V:,--version: version=
|
||||||
--auto-archive disttype=auto
|
--auto-archive disttype=auto
|
||||||
-F,--full-archive disttype=full
|
-F,--full-archive disttype=full
|
||||||
-P,--patch-archive disttype=patch
|
-H,--patch-archive disttype=patch
|
||||||
--auto-unwrap unwrap=auto
|
--auto-unwrap unwrap=auto
|
||||||
--no-unwrap unwrap=
|
--no-unwrap unwrap=
|
||||||
-E,--unwrap unwrap=1
|
-E,--unwrap unwrap=1
|
||||||
|
@ -1293,6 +1318,9 @@ args=($parse_mode
|
||||||
-b,--add-local action=add-local
|
-b,--add-local action=add-local
|
||||||
-e,--edit action=edit
|
-e,--edit action=edit
|
||||||
-p:,--profile: profile=
|
-p:,--profile: profile=
|
||||||
|
-P,--prod profile=prod
|
||||||
|
-T,--test profile=test
|
||||||
|
-A,--all-profiles profile=ALL
|
||||||
-d,--diff action=diff
|
-d,--diff action=diff
|
||||||
--infos action=infos
|
--infos action=infos
|
||||||
-l,--list-names,--show-all alternate=1
|
-l,--list-names,--show-all alternate=1
|
||||||
|
|
Loading…
Reference in New Issue