X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/34dbf787c3fa13541abc9aadcf53c23016895382..b123f2edc5c437ba5139b9a37c35fa5b3bd752fd:/include/shell.sh?ds=inline

diff --git a/include/shell.sh b/include/shell.sh
index 6ee0cf603..634beedce 100644
--- a/include/shell.sh
+++ b/include/shell.sh
@@ -13,3 +13,25 @@ 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() {
+	cat "$@" | (
+		md5sum 2>/dev/null ||
+		md5 
+	) | awk '{print $1}'
+}