various fixes, improvements, shellcheck
[automated-distro-installer] / faiserver-uninstall
index 71a4ea08d90cb61fc67bc7f1000c5d3518b07c16..8392b3553483101e11ed69d4061d6d2f960047a5 100755 (executable)
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
+
+[[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@"
+
+if ! test "$BASH_VERSION"; then echo "error: shell is not bash" >&2; exit 1; fi
+shopt -s inherit_errexit 2>/dev/null ||: # ignore fail in bash < 4.4
 set -eE -o pipefail
-trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" exit status: $?, PIPESTATUS: ${PIPESTATUS[*]}" >&2' ERR
 
-[[ $EUID == 0 ]] || exec sudo "${BASH_SOURCE}" "$@"
 
 usage() {
-    cat <<EOF
-usage: ${0##*/} [-h|--help]
+    cat <<'EOF'
+usage: this-script [-h|--help]
 uninstall fai-server
 EOF
     exit $1
 }
 case $1 in
-    -h|--help) usage ;;
+    -h|--help) usage 0 ;;
+    *) usage 1 ;;
 esac