nutools: ajout de cpvcs() pour copier avec la sémantique de cpnovcs() les fichiers de VCS aussi
This commit is contained in:
parent
1ca0ee54b5
commit
775a02119e
|
@ -1193,6 +1193,7 @@ function __cpdir() {
|
|||
}
|
||||
__CPNOVCS_RSYNC_SLOW=1 # synchro potentiellement plus lente, mais plus fidèle (option -c)
|
||||
__CPNOVCS_RSYNC_ARGS=(-q)
|
||||
__CPNOVCS_INCLUDE_VCS= # ne pas ignorer les répertoires de VCS
|
||||
function cpnovcs() {
|
||||
# copier le fichier/répertoire $1 *dans* le *répertoire* $2 avec rsync. Les
|
||||
# options du tableau __CPNOVCS_RSYNC_ARGS sont rajoutées aux options standard
|
||||
|
@ -1206,11 +1207,13 @@ function cpnovcs() {
|
|||
local src="$1" destdir="$2"
|
||||
[ -d "$destdir" ] || mkdir -p "$destdir" || return 1
|
||||
if progexists rsync; then
|
||||
local gitexclude=/.git/
|
||||
if [ "${src%/}" == "$src" ]; then
|
||||
gitexclude="/$(basename -- "$src")$gitexclude"
|
||||
local -a novcs
|
||||
if [ -z "$__CPNOVCS_INCLUDE_VCS" ]; then
|
||||
local gitexclude=/.git/
|
||||
[ "${src%/}" == "$src" ] && gitexclude="/$(basename -- "$src")$gitexclude"
|
||||
novcs=(--exclude CVS/ --exclude .svn/ --exclude "$gitexclude")
|
||||
fi
|
||||
rsync -a ${__CPNOVCS_RSYNC_SLOW:+-c} --exclude CVS/ --exclude .svn/ --exclude "$gitexclude" "${__CPNOVCS_RSYNC_ARGS[@]}" "$src" "$destdir/"
|
||||
rsync -a ${__CPNOVCS_RSYNC_SLOW:+-c} "${novcs[@]}" "${__CPNOVCS_RSYNC_ARGS[@]}" "$src" "$destdir/"
|
||||
elif [ "${src%/}" != "$src" ]; then
|
||||
__cpdir "$src" "$destdir"
|
||||
else
|
||||
|
@ -1219,6 +1222,11 @@ function cpnovcs() {
|
|||
__cpdir "$src" "$destdir/$srcname"
|
||||
fi
|
||||
}
|
||||
function cpvcs() {
|
||||
# comme cpnovcs, mais ne pas ignorer les répertoires de VCS
|
||||
local __CPNOVCS_INCLUDE_VCS=1
|
||||
cpnovcs "$@"
|
||||
}
|
||||
function cpdirnovcs() {
|
||||
# Le pendant de cpdir, mais en ignorant les sous-répertoires de VCS: copier le
|
||||
# contenu du répertoire $1 dans le répertoire $2
|
||||
|
|
Loading…
Reference in New Issue