Gcc

From Attie's Wiki
(Difference between revisions)
Jump to: navigation, search
m (Highlight the output of gcc)
m (Highlight the output of gcc)
 
(9 intermediate revisions by one user not shown)
Line 4: Line 4:
  
 
<source lang="bash">
 
<source lang="bash">
make 2>&1 | sed -re 's/^([^:]+:[0-9]+:[0-9]+: warning: .+)$/\x1B[93m&\x1B[m/g' -e 's/^([^:]+:[0-9]+:[0-9]+: error: .+)$/\x1B[91m&\x1B[m/g'
+
stdbuf -oL make 2>&1 | \
</source>
+
  sed -re 's/^([^:]+:[0-9]+:[0-9]+: warning: .+)$/\x1B[93m&\x1B[m/g' \
 
+
      -e 's/^([^:]+:[0-9]+:[0-9]+: error: .+)$/\x1B[91m&\x1B[m/g'
Or try this one, to dim everything that isn't interesting:
+
<source lang="bash">
+
make "$@" 2>&1 | sed -re 's/^[^:]+:[0-9]+:[0-9]+: warning: .+$/\x1B[93m&\x1B[m/g' -e 's/^[^:]+:[0-9]+:[0-9]+: error: .+$/\x1B[91m&\x1B[m/g' -e 's/^[^:]+: In function \x27[^\x27]+\x27:$/\x1B[97m&\x1B[m/g' -e 's/^[^\x1B].+$/\x1B[90m&\x1B[m/'
+
 
</source>
 
</source>
  
Line 16: Line 13:
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
make "$@" 2>&1 | sed -re 's/^[^:]+:[0-9]+:[0-9]+: warning: .+$/\x1B[93m&\x1B[m/g' -e 's/^[^:]+:[0-9]+:[0-9]+: error: .+$/\x1B[91m&\x1B[m/g' -e 's/^[^:]+: In function \x27[^\x27]+\x27:$/\x1B[97m&\x1B[m/g' -e 's/^[^\x1B].+$/\x1B[90m&\x1B[m/'
+
set -o pipefail
 +
stdbuf -oL make "$@" 2>&1 | \
 +
  sed -ure 's/^[^:]+:[0-9]+:[0-9]+: warning: .+$/\x1B[38;5;208m&\x1B[m/g' \
 +
        -e 's/^[^:]+:[0-9]+:[0-9]+: (fatal )?error: .+$/\x1B[38;5;161m&\x1B[m/g' \
 +
        -e 's/^.+: undefined reference to .+$/\x1B[38;5;161m&\x1B[m/g' \
 +
        -e 's/^[^:]+:[0-9]+:[0-9]+: note: .+$/\x1B[38;5;94m&\x1B[m/g' \
 +
        -e 's/^[^:]+: In function .+$/\x1B[38;5;34m&\x1B[m/g' \
 +
        -e 's/^(\x1B\[38;5;208m.*)(TODO)(.*)$/\1\x1B[38;5;33m\2\x1B[38;5;208m\3/g' \
 +
        -e 's/^(make(\[[0-9]*\])?: (Entering|Leaving) directory )(`.*)$/\x1B[38;5;90m\1\x1B[38;5;200m\4\x1B[m/g' \
 +
        -e 's/^[^\x1B].+$/\x1B[90m&\x1B[m/g'
 
exit $?
 
exit $?
 
</source>
 
</source>

Latest revision as of 14:17, 25 February 2015

[edit] Highlight the output of gcc

  • warnings will be highlighted yellow
  • errors will be highlighted red
stdbuf -oL make 2>&1 | \
  sed -re 's/^([^:]+:[0-9]+:[0-9]+: warning: .+)$/\x1B[93m&\x1B[m/g' \
       -e 's/^([^:]+:[0-9]+:[0-9]+: error: .+)$/\x1B[91m&\x1B[m/g'

[edit] script form

Or, put this in your path, called mk or something:

#!/bin/bash
set -o pipefail
stdbuf -oL make "$@" 2>&1 | \
  sed -ure 's/^[^:]+:[0-9]+:[0-9]+: warning: .+$/\x1B[38;5;208m&\x1B[m/g' \
        -e 's/^[^:]+:[0-9]+:[0-9]+: (fatal )?error: .+$/\x1B[38;5;161m&\x1B[m/g' \
        -e 's/^.+: undefined reference to .+$/\x1B[38;5;161m&\x1B[m/g' \
        -e 's/^[^:]+:[0-9]+:[0-9]+: note: .+$/\x1B[38;5;94m&\x1B[m/g' \
        -e 's/^[^:]+: In function .+$/\x1B[38;5;34m&\x1B[m/g' \
        -e 's/^(\x1B\[38;5;208m.*)(TODO)(.*)$/\1\x1B[38;5;33m\2\x1B[38;5;208m\3/g' \
        -e 's/^(make(\[[0-9]*\])?: (Entering|Leaving) directory )(`.*)$/\x1B[38;5;90m\1\x1B[38;5;200m\4\x1B[m/g' \
        -e 's/^[^\x1B].+$/\x1B[90m&\x1B[m/g'
exit $?
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox