summaryrefslogtreecommitdiffstats
path: root/ship/lib/core
diff options
context:
space:
mode:
Diffstat (limited to 'ship/lib/core')
-rw-r--r--ship/lib/core9
1 files changed, 8 insertions, 1 deletions
diff --git a/ship/lib/core b/ship/lib/core
index 3a6b33ff..1ef1fbf9 100644
--- a/ship/lib/core
+++ b/ship/lib/core
@@ -2,15 +2,22 @@
msg() { printf "$@\n" >&2 ;}
info() { msg "** $@" ;}
error() { msg "!! $@" ;}
+die() { error "$@" ;exit 1;}
exists(){ type "$1" >/dev/null 2>/dev/null; }
is_root(){
test $(id -u) -eq 0
+}
+
+defer(){
+ #close enough
+ trapstr="$1;${trapstr:-exit}"
+ trap "$trapstr" INT TERM EXIT KILL
}
esudo(){
# becomes root with sudo powers
# unless nosudo env is set
- if test "${nosudo-false}" != true || is_root; then
+ if test "${nosudo-false}" != true && ! is_root; then
echo "we're going sudo..." >&2
exec sudo -E "$0" "$@"
exit 23 # go to hell