2016-08-02 20:50:45 +00:00
|
|
|
#!/bin/sh
|
|
|
|
# mcolor - colorize rendered mail
|
|
|
|
|
|
|
|
# restart as awk script
|
|
|
|
true + /; exec awk -f "$0"; exit; / {}
|
|
|
|
|
|
|
|
function co(n, c) { e = ENVIRON["MCOLOR_" n]; return e ? e : c }
|
|
|
|
function fg(c, s) { return sprintf("\033[38;5;%03dm%s\033[0m", c, s) }
|
|
|
|
function so(s) { return sprintf("\033[1m%s\033[0m", s) }
|
2016-08-02 21:16:58 +00:00
|
|
|
BEGIN { hdr = 1; if (match(ENVIRON["TERM"], "^(dumb|network|9term)")) dumb = 1 }
|
|
|
|
dumb { print; next }
|
2016-08-02 20:50:45 +00:00
|
|
|
/^$/ { hdr = 0 }
|
|
|
|
/^-- $/ { ftr = 1 }
|
|
|
|
/^--- .* ---/ { print fg(co("SEP",242), $0); ftr = 0; sig = 0; next }
|
|
|
|
/^-----BEGIN .* SIGNATURE-----/ { sig = 1 }
|
|
|
|
hdr && /^From:/ { print so(fg(co("FROM",119), $0)); next }
|
|
|
|
hdr { print fg(co("HEADER",120), $0); next }
|
|
|
|
ftr { print fg(co("FOOTER",244), $0); next }
|
|
|
|
/^-----BEGIN .* MESSAGE-----/ ||
|
|
|
|
/^-----END .* SIGNATURE-----/ { print fg(co("SIG",244), $0); sig = 0; next }
|
|
|
|
sig { print fg(co("SIG",244), $0); next }
|
|
|
|
/^>/ { print fg(co("QUOTE",151), $0); next }
|
|
|
|
{ print }
|