From e6b15fe1c658ad0577ee933ef5d6e34a8cea6b74 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Fri, 3 Jul 2020 02:17:01 +0800 Subject: Refine print method --- gist | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/gist b/gist index 3f6b3ba..7910439 100755 --- a/gist +++ b/gist @@ -318,25 +318,24 @@ _print_records() { sed -Ee "/^$mark/ !d; /^$(_index_pattern) / !d" $INDEX \ | while read -r "${INDEX_FORMAT[@]}"; do - local message=${GIST_DOMAIN}/${gist_id} + local message="$(printf '%-56s' ${GIST_DOMAIN}/${gist_id})" if [[ $display == 'tag' ]]; then - local tags=( ${tags_string//,/ } ); message="${tags[@]}" - [[ $show_untagged == 'false' && ${#tags[@]} == '0' ]] && continue - local width=45; local align=' '; + [[ $show_untagged == 'false' && tags_string == ',' ]] && continue + message="$(printf '% 45s' "${tags_string//,/ }") " + if [[ -n $pin ]]; then + local pinned_tags=($pin); local pattern="$(_pattern_pinned_tags ${pinned_tags[@]/#/#})" + message="$(_color_pattern "$pattern" <<<"$message")" + fi elif [[ $display == 'language' ]]; then - message="$(tr ',' '\n' <<< $file_array | sed -Ee 's/.+@/#/' | uniq | xargs)" - local width=45; local align=' '; + message="$(tr ',' '\n' <<< $file_array | sed -Ee 's/.+=/#/' | uniq | xargs)" + message="$(printf '% 45s' "$message")" fi local extra="$(printf "%-4s" "$file_num $comment_num")" local status=''; status=$(_check_repo_status "${folder}/${gist_id}" "$blob_code") [[ $index =~ ^s ]] && description="$(printf "%-12s" [${author}]) ${description}" - raw_output="$(printf "%-3s" "$index") $(printf "%${align:--}${width:-56}s" "$message") $extra ${status:+${status} }$(_color_pattern '^(\[.+\])' <<<"$description")" - if [[ -n $pin && $display == 'tag' ]]; then - local pinned_tags=($pin); local pattern="$(_pattern_pinned_tags ${pinned_tags[@]/#/#})" - raw_output="$(_color_pattern "$pattern" <<<"$raw_output")" - fi + raw_output="$(printf "%-3s" "$index") $message $extra ${status:+${status} }$(_color_pattern '^(\[.+\])' <<<"$description")" decorator=$(( $(grep -o '\\e\[0m' <<<"$raw_output" | wc -l) *9 )) echo -e "$raw_output" | cut -c -$(( $COLUMNS +decorator )) done -- cgit v1.2.3-70-g09d2