-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlog.bash
70 lines (59 loc) · 1.51 KB
/
log.bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/env bash
# Copyright (c) 2024 Greg Rynkowski. All rights reserved.
# License: MIT License
# Path Initialization
if [ -n "${SHELL_GR_DIR:-}" ]; then
_SHELL_GR_DIR="${SHELL_GR_DIR}"
elif [ -z "${_SHELL_GR_DIR:-}" ]; then
_SCRIPT_PATH_1="${BASH_SOURCE[0]:-$0}"
_SCRIPT_PATH="$([[ ! "${_SCRIPT_PATH_1}" =~ /bash$ ]] && readlink -f "${_SCRIPT_PATH_1}" || exit 1)"
_SCRIPT_DIR="$(cd "$(dirname "${_SCRIPT_PATH}")" && pwd -P || exit 1)"
_ROOT_DIR="$(cd "${_SCRIPT_DIR}/.." && pwd -P || exit 1)"
_SHELL_GR_DIR="${_ROOT_DIR}"
fi
# Library Sourcing
source "${_SHELL_GR_DIR}/lib/color.bash" # NC, RED, YELLOW, is_color
source "${_SHELL_GR_DIR}/lib/debug.bash" # is_debug
# Expected env vars for log functions:
# COLOR - to enable/disable colors
# DEBUG - to enable/disable debug logs
# PREFIX - log prefix
__LOG_PREFIX="${LOG_PREFIX:-}"
# shellcheck disable=SC2059
log_error_f() {
if is_color; then
printf "${RED}${__LOG_PREFIX}${1}${NC}" "${@:2}"
else
printf "$@"
fi
}
log_error() {
log_error_f "%s\n" "$@"
}
# shellcheck disable=SC2059
log_warning_f() {
if is_color; then
printf "${YELLOW}${__LOG_PREFIX}${1}${NC}" "${@:2}"
else
printf "$@"
fi
}
log_warning() {
log_warning_f "%s\n" "$@"
}
log_info_f() {
# shellcheck disable=SC2059
printf "${__LOG_PREFIX}${1}" "${@:2}"
}
log_info() {
log_info_f "${__LOG_PREFIX}%s\n" "$@"
}
log_debug_f() {
if is_debug; then
# shellcheck disable=SC2059
printf "${__LOG_PREFIX}${1}" "${@:2}"
fi
}
log_debug() {
log_debug_f "%s\n" "$@"
}