-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path.bash_logging
98 lines (75 loc) · 1.67 KB
/
.bash_logging
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/env bash
set -e
set -o pipefail
set -u
# Source the variables and functions for displaying coloured output
source .bash_colours || exit
_LOGFILE_=
log_init() {
# local logfile="$1"
_LOGFILE_="$1"
# Redirect fd 3 to the logfile and redirect STDERR to STDOUT. This is set up for
# easier logging. Redirecting STDERR to STDOUT allows us to simply write a
# single redirection against the commands and all their output will be logged,
# including errors and warnings
# exec 3>>"${logfile}" 2>&1
}
log_test() {
log_user "white" "Line in White"
log_user "red" "Red Text"
log_user_n "yellow" "White text... Wait... "
log_user "green" "DONE!"
log_error "red" "Only in log file"
log_all "green" "For user and log"
}
__printf_n() {
local COLOR="$1"
local CLR="_${COLOR^^}"
local TEXT="${*:2}"
printf "%b%b%b" "${!CLR}" "$TEXT" "${_NC}"
}
__printf() {
local COLOR="$1"
local CLR="_${COLOR^^}"
local TEXT="${*:2}"
printf "%b%b%b\n" "${!CLR}" "$TEXT" "${_NC}"
}
## Unify into a single log call with parameters for log level and colour
log_user() {
__printf "$@"
}
log_user_n() {
__printf_n "$@"
}
log_std() {
__printf "nc" "$@" >> "${_LOGFILE_}"
}
log_info() {
__printf "white" "$@" >> "${_LOGFILE_}"
}
log_info_n() {
__printf_n "white" "$@" >> "${_LOGFILE_}"
}
log_warn() {
__printf "yellow" "$@" >> "${_LOGFILE_}"
}
log_error() {
__printf "red" "$@" >> "${_LOGFILE_}"
}
log_colour() {
__printf "$1" "${@:2}" >> "${_LOGFILE_}"
}
log_okay() {
__printf "green" "$@" >> "${_LOGFILE_}"
}
log_colour_n() {
__printf_n "$1" "${@:2}" >> "${_LOGFILE_}"
}
log_all() {
log_user "$@"
log_colour "$@"
}
log_all_n() {
log_user_n "$@"
log_colour_n "$@"
}