3 # https://stackoverflow.com/a/2684300
4 if [[ "${BASH_SOURCE[0]}" = "${0}" ]]; then
5 echo "[error] script \"$0\" is intended to be sourced, not executed directly"
9 # Get directory of current script:
11 # https://stackoverflow.com/a/12694189/2103996
13 # and convert to absolute path:
15 # https://stackoverflow.com/a/4045350/2103996
17 REPO_ROOT=$(cd "${BASH_SOURCE%/*}/.." && pwd)
19 BIN_DIR="$REPO_ROOT/bin"
23 export PATH="$BIN_DIR":$PATH
25 # https://stackoverflow.com/a/5947802/2103996
33 # No associative arrays in Bash < v4, so can't do:
35 # declare -A LOG_LEVEL
46 LOG_LEVEL=$LOG_LEVEL_INFO
50 if [[ $VAR = "--debug" ]]; then
51 LOG_LEVEL=$LOG_LEVEL_DEBUG
53 elif [[ $VAR = "--quiet" || $VAR = "-q" ]]; then
54 LOG_LEVEL=$LOG_LEVEL_ERROR
60 if [[ $LOG_LEVEL -ge $LOG_LEVEL_DEBUG ]]; then
61 echo -e "${PURPLE}[debug] ${RESET} $*" > /dev/stderr
66 if [[ $LOG_LEVEL -ge $LOG_LEVEL_ERROR ]]; then
67 echo -e "${RED}[error] ${RESET} $*" > /dev/stderr
72 if [[ $LOG_LEVEL -ge $LOG_LEVEL_INFO ]]; then
73 echo -e "${BOLD}[info] ${RESET} $*" > /dev/stderr
78 if [[ $LOG_LEVEL -ge $LOG_LEVEL_NOTICE ]]; then
79 echo -e "${GREEN}[notice] ${RESET} $*" > /dev/stderr
84 if [[ $LOG_LEVEL -ge $LOG_LEVEL_WARNING ]]; then
85 echo -e "${YELLOW}[warning]${RESET} $*" > /dev/stderr