Skip to content

Commit 8e4b6fd

Browse files
committed
lib/log: Refactor _@go.log_format_level_labels
The updates to `lib/format` from #107 make this function much shorter. Also, the logic to check the file descriptors was sort of confused and not really doing anything, at least not anything helpful, since the decision to print or strip formatting codes is now made per log level file descriptor in `@go.log`.
1 parent e43e9e0 commit 8e4b6fd

File tree

1 file changed

+4
-43
lines changed

1 file changed

+4
-43
lines changed

lib/log

Lines changed: 4 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -651,57 +651,18 @@ _@go.log_init() {
651651

652652
# Assigns formatted log level labels to __GO_LOG_LEVELS_FORMATTED.
653653
#
654-
# If `_GO_LOG_FORMATTING` is not empty, or the file descriptor corresponding to
655-
# a log level corresponds to a terminal, this will assign a corresponding value
656-
# wrapped by terminal formatting codes to __GO_LOG_LEVELS_FORMATTED. Otherwise
657-
# the original label value is assigned.
658-
#
659654
# Each element of `__GO_LOG_LEVELS_FORMATTED` will also be padded with trailing
660655
# spaces so that each element will be the same length.
661656
#
662657
# Globals:
663658
# _GO_LOG_LEVELS: List of valid log level labels
664-
# _GO_LOG_FORMATTING If set, always produce formatted labels
665659
# __GO_LOG_LEVELS_FORMAT_CODES: Terminal format codes for each log level
666-
# __GO_LOG_LEVELS_FILE_DESCRIPTORS: Output descriptors for each log level
667660
# __GO_LOG_LEVELS_FORMATTED: Formatted labels
668661
_@go.log_format_level_labels() {
669-
local num_levels="${#_GO_LOG_LEVELS[@]}"
670-
local label_length
671-
local longest_label_length
672-
local padding=''
673-
local log_level
674-
local padding_len
675-
local level_var
676-
local level_fd
677-
local i
678-
679-
for ((i=0; i != num_levels; ++i)); do
680-
label_length="${#_GO_LOG_LEVELS[$i]}"
681-
if [[ "$label_length" -gt "$longest_label_length" ]]; then
682-
longest_label_length="$label_length"
683-
fi
684-
done
685-
686-
for ((i=0; i != longest_label_length; ++i)); do
687-
padding+=' '
688-
done
689-
690-
for ((i=0; i != num_levels; ++i)); do
691-
log_level="${_GO_LOG_LEVELS[$i]}"
692-
padding_len="$((${#padding} - ${#log_level}))"
693-
694-
local __go_log_level_file_descriptors=()
695-
_@go.log_level_file_descriptors "$i"
696-
697-
for level_fd in "${__go_log_level_file_descriptors[@]}"; do
698-
if [[ -n "$_GO_LOG_FORMATTING" || -t "$level_fd" ]]; then
699-
log_level="${__GO_LOG_LEVELS_FORMAT_CODES[$i]}$log_level\e[0m"
700-
break
701-
fi
702-
done
703-
__GO_LOG_LEVELS_FORMATTED[$i]="${log_level}${padding:0:$padding_len}"
704-
done
662+
__GO_LOG_LEVELS_FORMATTED=("${_GO_LOG_LEVELS[@]/%/\\e[0m}")
663+
@go.pad_items __GO_LOG_LEVELS_FORMATTED "${__GO_LOG_LEVELS_FORMATTED[@]}"
664+
@go.zip_items __GO_LOG_LEVELS_FORMAT_CODES __GO_LOG_LEVELS_FORMATTED '' \
665+
__GO_LOG_LEVELS_FORMATTED
705666
}
706667

707668
# Returns the set of file descriptors for the specified log level index.

0 commit comments

Comments
 (0)