Skip to content

Commit ad68fdf

Browse files
committed
! find-in-jars: improve output, display responsive message on stderr
1 parent fcff5c5 commit ad68fdf

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

bin/find-in-jars

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,15 @@ readonly PROG="$(basename "$0")"
2121
# util functions
2222
################################################################################
2323

24-
# shellcheck disable=SC2015
25-
[ -t 1 ] && readonly is_console=true || readonly is_console=false
26-
2724
# NOTE: $'foo' is the escape sequence syntax of bash
2825
readonly ec=$'\033' # escape char
2926
readonly eend=$'\033[0m' # escape end
3027
readonly cr=$'\r' # carriage return
3128
readonly nl=$'\n' # new line
3229

3330
redEcho() {
34-
$is_console && echo "${ec}[1;31m$*$eend" || echo "$*"
31+
# -t check: is a terminal device?
32+
[ -t 1 ] && echo "${ec}[1;31m$*$eend" || echo "$*"
3533
}
3634

3735
die() {
@@ -41,18 +39,17 @@ die() {
4139

4240
# Getting console width using a bash script
4341
# https://unix.stackexchange.com/questions/299067
44-
$is_console && readonly columns=$(stty size | awk '{print $2}')
45-
42+
[ -t 2 ] && readonly columns=$(stty size | awk '{print $2}')
4643
printResponsiveMessage() {
47-
$is_console || return 0
44+
[ -t 2 ] || return 0
4845

4946
local message="$*"
5047
# http://www.linuxforums.org/forum/red-hat-fedora-linux/142825-how-truncate-string-bash-script.html
51-
echo -n "${message:0:columns}"
48+
echo -n "${message:0:columns}" >&2
5249
}
5350

5451
clearResponsiveMessage() {
55-
$is_console || return 0
52+
[ -t 2 ] || return 0
5653

5754
# How to delete line with echo?
5855
# https://unix.stackexchange.com/questions/26576
@@ -62,7 +59,7 @@ clearResponsiveMessage() {
6259
# echo -e "\033[1K"
6360
# Or everything on the line, regardless of cursor position:
6461
# echo -e "\033[2K"
65-
echo -n "${ec}[2K$cr"
62+
echo -n "${ec}[2K$cr" >&2
6663
}
6764

6865
usage() {
@@ -75,6 +72,7 @@ usage() {
7572

7673
cat >$out <<EOF
7774
Usage: ${PROG} [OPTION]... PATTERN
75+
7876
Find files in the jar files under specified directory,
7977
search jar files recursively(include subdirectory).
8078
The pattern default is *extended* regex.
@@ -243,7 +241,7 @@ total_count="$(echo "$jar_files" | wc -l)"
243241
total_count="${total_count//[[:space:]]/}" # delete white space
244242

245243
findInJarFiles() {
246-
$is_console && local -r grep_color_option='--color=always'
244+
[ -t 1 ] && local -r grep_color_option='--color=always'
247245

248246
local counter=1 jar_file
249247
while read -r jar_file; do
@@ -256,7 +254,7 @@ findInJarFiles() {
256254
} | while read -r file; do
257255
clearResponsiveMessage
258256

259-
$is_console &&
257+
[ -t 1 ] &&
260258
echo "${ec}[1;35m${jar_file}${eend}${ec}[1;32m${separator}${eend}${file}" ||
261259
echo "${jar_file}${separator}${file}"
262260
done

0 commit comments

Comments
 (0)