From fa860129191cbb88541d069ba014d2c5237e1d54 Mon Sep 17 00:00:00 2001 From: paltherr Date: Thu, 23 Oct 2003 06:56:52 +0000 Subject: - Improved stdlib.sh - Adapted install.sh & mirror.sh --- support/scripts/install.sh | 13 +++++++------ support/scripts/mirror.sh | 7 ++++--- support/scripts/stdlib.sh | 37 ++++++++++++++++++++++--------------- 3 files changed, 33 insertions(+), 24 deletions(-) (limited to 'support/scripts') diff --git a/support/scripts/install.sh b/support/scripts/install.sh index 5af2ed2a97..352b47f75a 100644 --- a/support/scripts/install.sh +++ b/support/scripts/install.sh @@ -86,6 +86,7 @@ function install-files() { } function install() { + local program="$FUNCNAME"; local version='$Revision$'; local directory="false"; local leading="false"; @@ -95,14 +96,14 @@ function install() { local preserve="false"; local -a files; - args-loop "$FUNCNAME" "$@"; + args-loop "$@"; local count="${#files[@]}"; if [ $count -lt 1 ]; then if [ "$directory" == "true" ]; then - abort "$FUNCNAME: missing target directory"; + abort "missing target directory"; else - abort "$FUNCNAME: missing source file"; + abort "missing source file"; fi; fi; @@ -110,7 +111,7 @@ function install() { install-dirs "${files[@]}"; else if [ $count -lt 2 ]; then - abort "$FUNCNAME: missing destination"; + abort "missing destination"; fi; local last="${files[$(($count-1))]}"; @@ -120,8 +121,8 @@ function install() { elif [ $count -eq 2 ]; then install-file "${files[@]}"; else - local text1="$FUNCNAME: installing multiple files, but last"; - local text2="argument, \`$last' is not a directory"; + local text1="installing multiple files, but last"; + local text2="argument, '$last' is not a directory"; abort "$text1 $text2"; fi; fi; diff --git a/support/scripts/mirror.sh b/support/scripts/mirror.sh index 4b6a0df60b..64848ed538 100644 --- a/support/scripts/mirror.sh +++ b/support/scripts/mirror.sh @@ -39,6 +39,7 @@ function mirror-files() { } function mirror() { + local program="$FUNCNAME"; local version='$Revision$'; local prefix="."; local owner=""; @@ -47,15 +48,15 @@ function mirror() { local preserve="false"; local -a files; - args-loop "$FUNCNAME" "$@"; + args-loop "$@"; if [ ! -d "$prefix" ]; then - abort "$FUNCNAME: could not find directory \`$prefix'"; + abort "could not find directory '$prefix'"; fi; local count="${#files[@]}"; if [ $count -lt 1 ]; then - abort "$FUNCNAME: missing target directory"; + abort "missing target directory"; fi; local -a instargs; diff --git a/support/scripts/stdlib.sh b/support/scripts/stdlib.sh index 2a472f104a..fe78a56eef 100644 --- a/support/scripts/stdlib.sh +++ b/support/scripts/stdlib.sh @@ -11,39 +11,46 @@ function print() { } function abort() { - print "$@" 1>&2; + print "${program:-error}: ""$@" 1>&2; exit 1; } -function run() { - [ "$verbose" = "true" ] && echo "$@"; +function run_() { "$@" || exit $?; } -############################################################################## +function run() { + [ "$verbose" = "true" ] && echo "$@"; + run_ "$@"; +} -# usage: args-abort -# abort argument processing with message -function args-abort() { - local error="$1"; - shift 1; - abort "$args_script: $error" "$@"; +function runO() { + local stdout="$1"; shift 1; + [ "$verbose" = "true" ] && echo "$@" "1>" "$stdout"; + run_ "$@" 1> "$stdout"; } +############################################################################## + # usage: args-loop