Skip to content

Instantly share code, notes, and snippets.

@brianoflan
Created June 15, 2017 02:50
Show Gist options
  • Save brianoflan/366ce9ef3fd899516f33255d98676f27 to your computer and use it in GitHub Desktop.
Save brianoflan/366ce9ef3fd899516f33255d98676f27 to your computer and use it in GitHub Desktop.
say_do, die, execute, etc.
#!/bin/bash
main() {
execute echo hi ;
execute true ;
# execute false || echo "$? from execute false" ;
# { execute false; } || echo "$? from execute false" ;
( execute false; ) || echo "$? from execute false" ;
say_do echo howdy ;
say_do true ;
say_do false || echo "$? from execute false" ;
vexecute true ;
# vexecute false || echo "$? from vexecute false" ;
# { vexecute false; } || echo "$? from vexecute false" ;
( vexecute false; ) || echo "$? from vexecute false" ;
}
execute() {
"$@" || die "ERROR: '$?' from {$*}."
}
vexecute() {
local e=''
echo "$@" 1>&2 ;
"$@" || e=$?
echo 1>&2 ;
[[ 0 -eq $e ]] || die "ERROR: '$?' from {$*}."
}
say_do() {
echo "$@" 1>&2 ;
"$@"
}
vsay_do() {
local e=''
say_do "$@" || e=$?
echo 1>&2 ;
return $e
}
die() { echo $1 ; exit 1 ; }
main "$@"
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment