|
20 | 20 | # See the License for the specific language governing permissions and |
21 | 21 | # limitations under the License. |
22 | 22 | # ============================================================================= |
23 | | - |
24 | | -# work around for Darwin (Mac OS) |
25 | | -READLINK=readlink; if [[ $(uname) == "Darwin" ]]; then READLINK=greadlink; fi |
| 23 | +# shellcheck shell=bash |
26 | 24 |
|
27 | 25 | # Save working directory |
28 | 26 | WorkingDir=$(pwd) |
29 | | -ScriptDir="$($READLINK -f $(dirname $0))" |
30 | | -RootDir="$($READLINK -f $ScriptDir/..)" |
31 | | - |
32 | | -ANSI_ENABLE_COLOR() { |
33 | | - ENABLECOLOR='-c ' |
34 | | - ANSI_BLACK=$'\x1b[30m' |
35 | | - ANSI_RED=$'\x1b[31m' |
36 | | - ANSI_GREEN=$'\x1b[32m' |
37 | | - ANSI_YELLOW=$'\x1b[33m' |
38 | | - ANSI_BLUE=$'\x1b[34m' |
39 | | - ANSI_MAGENTA=$'\x1b[35m' |
40 | | - ANSI_CYAN=$'\x1b[36m' |
41 | | - ANSI_DARK_GRAY=$'\x1b[90m' |
42 | | - ANSI_LIGHT_GRAY=$'\x1b[37m' |
43 | | - ANSI_LIGHT_RED=$'\x1b[91m' |
44 | | - ANSI_LIGHT_GREEN=$'\x1b[92m' |
45 | | - ANSI_LIGHT_YELLOW=$'\x1b[93m' |
46 | | - ANSI_LIGHT_BLUE=$'\x1b[94m' |
47 | | - ANSI_LIGHT_MAGENTA=$'\x1b[95m' |
48 | | - ANSI_LIGHT_CYAN=$'\x1b[96m' |
49 | | - ANSI_WHITE=$'\x1b[97m' |
50 | | - ANSI_NOCOLOR=$'\x1b[0m' |
51 | | - |
52 | | - # red texts |
53 | | - COLORED_ERROR="${ANSI_RED}[ERROR]" |
54 | | - COLORED_FAILED="${ANSI_RED}[FAILED]${ANSI_NOCOLOR}" |
| 27 | +ScriptDir="$(readlink -f "$(dirname "$0")")" |
| 28 | +RootDir="$(readlink -f "$ScriptDir/..")" |
55 | 29 |
|
56 | | - # yellow texts |
57 | | - COLORED_WARNING="${ANSI_YELLOW}[WARNING]" |
| 30 | +ANSI_BLACK=$'\x1b[30m' |
| 31 | +ANSI_RED=$'\x1b[31m' |
| 32 | +ANSI_GREEN=$'\x1b[32m' |
| 33 | +ANSI_YELLOW=$'\x1b[33m' |
| 34 | +ANSI_BLUE=$'\x1b[34m' |
| 35 | +ANSI_MAGENTA=$'\x1b[35m' |
| 36 | +ANSI_CYAN=$'\x1b[36m' |
| 37 | +ANSI_DARK_GRAY=$'\x1b[90m' |
| 38 | +ANSI_LIGHT_GRAY=$'\x1b[37m' |
| 39 | +ANSI_LIGHT_RED=$'\x1b[91m' |
| 40 | +ANSI_LIGHT_GREEN=$'\x1b[92m' |
| 41 | +ANSI_LIGHT_YELLOW=$'\x1b[93m' |
| 42 | +ANSI_LIGHT_BLUE=$'\x1b[94m' |
| 43 | +ANSI_LIGHT_MAGENTA=$'\x1b[95m' |
| 44 | +ANSI_LIGHT_CYAN=$'\x1b[96m' |
| 45 | +ANSI_WHITE=$'\x1b[97m' |
| 46 | +ANSI_NOCOLOR=$'\x1b[0m' |
58 | 47 |
|
59 | | - # green texts |
60 | | - COLORED_PASSED="${ANSI_GREEN}[PASSED]${ANSI_NOCOLOR}" |
61 | | - COLORED_DONE="${ANSI_GREEN}[DONE]${ANSI_NOCOLOR}" |
62 | | - COLORED_SUCCESSFUL="${ANSI_GREEN}[SUCCESSFUL]${ANSI_NOCOLOR}" |
63 | | -} |
64 | | -ANSI_ENABLE_COLOR |
| 48 | +# red texts |
| 49 | +COLORED_ERROR="${ANSI_RED}[ERROR]" |
65 | 50 |
|
66 | 51 | # command line argument processing |
67 | 52 | COMMAND=2 # 0-help, 1-unknown option, 2-no arg needed |
68 | 53 | INDENT="" |
69 | 54 | VERBOSE=0; DEBUG=0 |
70 | | -while [[ $# > 0 ]]; do |
| 55 | +while [[ $# -gt 0 ]]; do |
71 | 56 | key="$1" |
72 | 57 | case $key in |
73 | 58 | -i|--indent) |
@@ -125,17 +110,24 @@ Pattern_CANCELED='#[0-9]+ CANCELED' |
125 | 110 | Pattern_Tagging='#[0-9]+ naming to (.*?) done' |
126 | 111 | Pattern_MIKTEX='#[0-9]+ [0-9]+\.[0-9]+ Installing package' |
127 | 112 |
|
128 | | -while IFS='\n' read -r line; do |
| 113 | +group=0 |
| 114 | +while IFS=$'\n' read -r line; do |
129 | 115 | if [[ "${line}" =~ $Pattern_FROM ]]; then |
130 | | - printf "%s\n" "${INDENT}${ANSI_MAGENTA}${line}${ANSI_NOCOLOR}" |
| 116 | + printf "::group::%s\n" "${INDENT}${ANSI_MAGENTA}${line}${ANSI_NOCOLOR}" |
| 117 | + group=1 |
131 | 118 | elif [[ "${line}" =~ $Pattern_RUN ]]; then |
132 | | - printf "%s\n" "${INDENT}${ANSI_CYAN}${line}${ANSI_NOCOLOR}" |
| 119 | + printf "::group::%s\n" "${INDENT}${ANSI_CYAN}${line}${ANSI_NOCOLOR}" |
| 120 | + group=1 |
133 | 121 | elif [[ "${line}" =~ $Pattern_COPY ]]; then |
134 | 122 | printf "%s\n" "${INDENT}${ANSI_LIGHT_CYAN}${line}${ANSI_NOCOLOR}" |
135 | 123 | elif [[ "${line}" =~ $Pattern_LABEL_ENV ]]; then |
136 | 124 | printf "%s\n" "${INDENT}${ANSI_BLUE}${line}${ANSI_NOCOLOR}" |
137 | 125 | elif [[ "${line}" =~ $Pattern_DONE ]]; then |
| 126 | + if [[ $group -eq 1 ]]; then |
| 127 | + printf "::endgroup::\n" |
| 128 | + fi |
138 | 129 | printf "%s\n" "${INDENT}${ANSI_GREEN}${line}${ANSI_NOCOLOR}" |
| 130 | + group=0 |
139 | 131 | elif [[ "${line}" =~ $Pattern_ERROR ]]; then |
140 | 132 | printf "%s\n" "${INDENT}${ANSI_LIGHT_RED}${line}${ANSI_NOCOLOR}" |
141 | 133 | elif [[ "${line}" =~ $Pattern_CANCELED ]]; then |
|
0 commit comments