summaryrefslogtreecommitdiff
path: root/support/scripts
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-08-26 11:38:16 +0000
committerpaltherr <paltherr@epfl.ch>2003-08-26 11:38:16 +0000
commitc6dafd9c9ce711f502aa8c786d9027693f672447 (patch)
treed1239a0ba21935062bee9cac0a60b51925b9fa25 /support/scripts
parent508e62c5818216b47de0eb106fa6f33c99d7bf6a (diff)
downloadscala-c6dafd9c9ce711f502aa8c786d9027693f672447.tar.gz
scala-c6dafd9c9ce711f502aa8c786d9027693f672447.tar.bz2
scala-c6dafd9c9ce711f502aa8c786d9027693f672447.zip
- Added flag -p and --preserve-timestamps
Diffstat (limited to 'support/scripts')
-rw-r--r--support/scripts/install.sh61
-rw-r--r--support/scripts/mirror.sh28
2 files changed, 50 insertions, 39 deletions
diff --git a/support/scripts/install.sh b/support/scripts/install.sh
index 0a3c6aef1d..5af2ed2a97 100644
--- a/support/scripts/install.sh
+++ b/support/scripts/install.sh
@@ -10,21 +10,37 @@ source ${0%/*}/stdlib.sh;
function install-args() {
case "$1" in
- --version ) echo "install (bash script) $version"; exit 0;;
- -d ) directory="true"; return 1;;
- --directory ) directory="true"; return 1;;
- -D ) leading="true"; return 1;;
- -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;;
+ -d ) directory="true"; return 1;;
+ --directory ) directory="true"; return 1;;
+ -D ) leading="true"; return 1;;
+ -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;
}
+function install-attr() {
+ local file="$1";
+ if [ -n "$mode" ]; then
+ run chmod "$mode" "$file";
+ fi;
+ if [ -n "$owner" -a -n "$group" ]; then
+ run chown "$owner:$group" "$file";
+ elif [ -n "$owner" ]; then
+ run chown "$owner" "$file";
+ elif [ -n "$group" ]; then
+ run chown ":$group" "$file";
+ fi;
+}
+
function install-mkdir() {
local dstpath="$1"; shift 1;
if [ "$dstpath" != "." ]; then
@@ -36,20 +52,10 @@ function install-copy() {
local srcfile="$1"; shift 1;
local dstfile="$1"; shift 1;
run cp "$srcfile" "$dstfile";
-}
-
-function install-attr() {
- local file="$1";
- if [ -n "$mode" ]; then
- run chmod "$mode" "$file";
- fi;
- if [ -n "$owner" -a -n "$group" ]; then
- run chmod "$owner:$group" "$file";
- elif [ -n "$owner" ]; then
- run chmod "$owner" "$file";
- elif [ -n "$group" ]; then
- run chmod "$USER:$group" "$file";
+ if [ "$preserve" == "true" ]; then
+ touch --reference="$srcfile" "$dstfile";
fi;
+ install-attr "$dstfile";
}
function install-dirs() {
@@ -68,7 +74,6 @@ function install-file() {
install-mkdir "$dstpath";
fi;
install-copy "$srcfile" "$dstfile";
- install-attr "$dstfile";
}
function install-files() {
@@ -77,17 +82,17 @@ function install-files() {
local srcfile="$1"; shift 1;
local dstfile="$dstpath/`basename "$srcfile"`";
install-copy "$srcfile" "$dstfile";
- install-attr "$dstfile";
done;
}
function install() {
- local version="1.00";
+ local version='$Revision$';
local directory="false";
local leading="false";
local owner="";
local group="";
local mode="";
+ local preserve="false";
local -a files;
args-loop "$FUNCNAME" "$@";
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))];