diff options
Diffstat (limited to 'ship/lib/core')
-rw-r--r-- | ship/lib/core | 9 |
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 |