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