-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquiet
executable file
·62 lines (54 loc) · 1.25 KB
/
quiet
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
#!/bin/sh
HELP='Usage:
quiet fname cmd args ...
Runs the passed in command printing only "cmd" and "fname" unless an
error occurs in which case it prints the whole command line and
colorized program output. Useful for running compilation commands since
it removes the cluter, making it easier to spot errors and warnings.
'
# Copyright (c) 2008-2010 LoEE
# This program is released under the new BSD license.
if [ $# -lt 2 ]; then
printf "$HELP"
exit
fi
GREEN=""
RED=""
NORM=""
if [ "$TERM@" = "rxvt@" -o "$TERM@" = "xterm-256color@" ]; then
GREEN="printf \033[32m"
RED="printf \033[31m"
YELLOW="printf \033[33m" # this is not yellow :)
NORM="printf \033[m\017"
fi
if [ "$OSTYPE@" = "msys@" ]; then
OLDATTR=$(eecolor.exe)
GREEN="eecolor.exe 0 10"
RED="eecolor.exe 0 12"
YELLOW="eecolor 0 14"
NORM="eecolor.exe ${OLDATTR}"
fi
MSG="$(printf "%-16s $1" "$2")"
shift;
printf "${MSG}\r" 1>&2
rm -f quiet.log
"$@" 2>> quiet.log
RET=$?
# if we check $? we won't notice the warnings
if [ $RET -ne 0 -o -s quiet.log ]; then
echo "$@" >& 2
if [ $RET -ne 0 ]; then
$RED >& 2
else
$YELLOW >& 2
fi
cat quiet.log >& 2
$NORM >& 2
exit $RET
else
$GREEN >& 2
printf "${MSG}\n" 1>&2
$NORM >& 2
fi
rm quiet.log
exit $RET