X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/f52d66ff00b24111f87c274d3d7085ef2e1d27b1..2e92008789a4f4161de924d41292e3ef39829b92:/include/shell.sh diff --git a/include/shell.sh b/include/shell.sh index 6ee0cf603..f6be6c526 100644 --- a/include/shell.sh +++ b/include/shell.sh @@ -13,3 +13,22 @@ 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 + } + } +)} + +md5s() { + which md5sum 2>&1 >/dev/null && md5sum "$@" | awk '{print $1}' || md5 "$@" +}