From 97c8cb1b64a660538b7ef6cf5a9b98f904a8bccc Mon Sep 17 00:00:00 2001 From: nbd Date: Mon, 27 Nov 2006 04:25:34 +0000 Subject: trap chmod errors in tar unpack on bsd - modes like 02755 fail git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5656 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- include/shell.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'include/shell.sh') diff --git a/include/shell.sh b/include/shell.sh index 6ee0cf603..1e60692b9 100644 --- a/include/shell.sh +++ b/include/shell.sh @@ -13,3 +13,18 @@ isset() { eval "var=\"\${$1}\"" [ -n "$var" ] } + +trapret() {( + local retvals="$1"; shift + local cmd="$1"; shift + for retval in $(echo $retvals); do + local trap_$retval=1 + done + "$cmd" "$@" || { + local retval="$?" + eval "trapped=\${trap_$retval}" + [ -n "$trapped" ] || { + return $retval + } + } +)} -- cgit v1.2.3