diff options
Diffstat (limited to 'support/scripts/mirror.sh')
-rw-r--r-- | support/scripts/mirror.sh | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/support/scripts/mirror.sh b/support/scripts/mirror.sh index 62ecdae950..4b6a0df60b 100644 --- a/support/scripts/mirror.sh +++ b/support/scripts/mirror.sh @@ -13,16 +13,18 @@ source ${0%/*}/install.sh; function mirror-args() { case "$1" in -# --version ) echo "install (bash script) $version"; exit 0;; - -C ) args-option-value prefix "$@";; - -o ) args-option-value owner "$@";; - --owner=* ) args-inline-value owner "$@";; - -g ) args-option-value group "$@";; - --group=* ) args-inline-value group "$@";; - -m ) args-option-value mode "$@";; - --mode=* ) args-inline-value mode "$@";; - -* ) args-option-unknown "$@";; - * ) args-append-array files "$@";; + --version ) echo "install (bash script) $version"; exit 0;; + -C ) args-option-value prefix "$@";; + -o ) args-option-value owner "$@";; + --owner=* ) args-inline-value owner "$@";; + -g ) args-option-value group "$@";; + --group=* ) args-inline-value group "$@";; + -m ) args-option-value mode "$@";; + --mode=* ) args-inline-value mode "$@";; + -p ) preserve="true"; return 1;; + --preserve-timestamps ) preserve="true"; return 1;; + -* ) args-option-unknown "$@";; + * ) args-append-array files "$@";; esac; } @@ -37,11 +39,12 @@ function mirror-files() { } function mirror() { -# local version="1.00"; + local version='$Revision$'; local prefix="."; local owner=""; local group=""; local mode=""; + local preserve="false"; local -a files; args-loop "$FUNCNAME" "$@"; @@ -66,6 +69,9 @@ function mirror() { if [ -n "$mode" ]; then instargs[${#instargs[@]}]="--mode=$mode"; fi; + if [ "$preserve" == "true" ]; then + instargs[${#instargs[@]}]="--preserve-timestamps"; + fi; local dstpath="${files[$(($count-1))]}"; unset files[$(($count-1))]; |