# # Variables to hold exit status semantic # TF_ES_OK=0 TF_ES_FAIL=1 TF_ES_BAILOUT=2 TF_ES_ERROR=3 TF_ES_PANIC=4 # # Color definition variables # TF_COLOR_BLACK="\033[0;30m" TF_COLOR_RED="\033[0;31m" TF_COLOR_GREEN="\033[0;32m" TF_COLOR_YELLOW="\033[0;33m" TF_COLOR_BLUE="\033[0;34m" TF_COLOR_MAGENTA="\033[0;35m" TF_COLOR_CYAN="\033[0;36m" TF_COLOR_WHITE="\033[0;37m" TF_COLOR_LBLACK="\033[1;30m" TF_COLOR_LRED="\033[1;31m" TF_COLOR_LGREEN="\033[1;32m" TF_COLOR_LYELLOW="\033[1;33m" TF_COLOR_LBLUE="\033[1;34m" TF_COLOR_LMAGENTA="\033[1;35m" TF_COLOR_LCYAN="\033[1;36m" TF_COLOR_LWHITE="\033[1;37m" TF_COLOR_NONE="\033[1;0m" tf_exit_ok() { # # Exit with OK status # exit $TF_ES_OK } tf_exit_fail() { # # Warn $1 and exit with status FAIL # tf_warn "$@" exit $TF_ES_FAIL } tf_exit_bailout() { # # Warn $1 and exit with status FAIL # tf_warn "$@" exit $TF_ES_BAILOUT } tf_exit_error() { # # Warn $1 and exit with status FAIL # tf_warn "$@" exit $TF_ES_ERROR } tf_exit_panic() { # # Warn $1 and exit with status FAIL # tf_warn "$@" exit $TF_ES_PANIC } tf_debug() { # # Emit debug message # $TF_DEBUG || return 0 local msg for msg in "$@"; do $TF_COLOR && echo -ne "$TF_COLOR_CYAN" >&2 echo "||| $msg" >&2; $TF_COLOR && echo -ne "$TF_COLOR_NONE" >&2 done } tf_think() { # # Emit status/progress message # $TF_VERBOSE || return 0 local msg for msg in "$@"; do $TF_COLOR && echo -ne "$TF_COLOR_LBLACK" >&2 echo "$pfx$msg$sfx" >&2; $TF_COLOR && echo -ne "$TF_COLOR_NONE" >&2 done } tf_warn() { # # Emit warning # local msg for msg in "$@"; do $TF_COLOR && echo -ne "$TF_COLOR_LRED" >&2 echo "$msg" >&2; $TF_COLOR && echo -ne "$TF_COLOR_NONE" >&2 done }