Browse Source

[fix] utils/lib.sh: in a pipe, do not print ASCII escape code

In 2a12637 an ASCII escape code was added, such escape codes should not be
written to pipes (when the output is not a terminal).

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Markus Heiser 3 years ago
parent
commit
73fc6499d8
1 changed files with 11 additions and 2 deletions
  1. 11 2
      utils/lib.sh

+ 11 - 2
utils/lib.sh

@@ -78,9 +78,18 @@ required_commands() {
 
 # shellcheck disable=SC2034
 set_terminal_colors() {
-    _colors=8
+    # https://en.wikipedia.org/wiki/ANSI_escape_code
+
+    # CSI (Control Sequence Introducer) sequences
+    _show_cursor='\e[?25h'
+    _hide_cursor='\e[?25l'
+
+    # SGR (Select Graphic Rendition) parameters
     _creset='\e[0m'  # reset all attributes
 
+    # original specification only had 8 colors
+    _colors=8
+
     _Black='\e[0;30m'
     _White='\e[1;37m'
     _Red='\e[0;31m'
@@ -271,7 +280,7 @@ prefix_stdout () {
         echo -e "${prefix}$line"
     done)
     # some piped commands hide the cursor, show cursory when the stream ends
-    echo -en "\e[?25h"
+    echo -en "$_show_cursor"
 }
 
 append_line() {