aboutsummaryrefslogtreecommitdiffstats
path: root/include/shell.sh
diff options
context:
space:
mode:
Diffstat (limited to 'include/shell.sh')
-rw-r--r--include/shell.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/include/shell.sh b/include/shell.sh
new file mode 100644
index 0000000..6389304
--- /dev/null
+++ b/include/shell.sh
@@ -0,0 +1,37 @@
+getvar() {
+ eval "echo \"\${$1}\""
+}
+
+var2file() {
+ local var
+ eval "var=\"\${$1}\""
+ if [ -n "$var" ]; then echo "$var" > "$2"; fi
+}
+
+isset() {
+ local var
+ 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}'
+}