Skip to content

Instantly share code, notes, and snippets.

@ginatrapani
Created July 8, 2011 17:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ginatrapani/1072329 to your computer and use it in GitHub Desktop.
Save ginatrapani/1072329 to your computer and use it in GitHub Desktop.
TODOTXT_FINAL_FILTER
#!/bin/bash
export COLOR_CONTEXT=$GREEN
export COLOR_PROJECT=$RED
export COLOR_DATE=$LIGHT_GREEN
# Force gawk to behave posixly. Comment out if you get an error about
# no such option -W.
# AWK_OPTIONS="-W posix"
if [ "$TODOTXT_PLAIN" -eq "0" ]; then
awk $AWK_OPTIONS '
function highlight(colorVar, color) {
color = ENVIRON[colorVar]
gsub(/\\+033/, "\033", color)
return color
}
{ color = "DEFAULT" }
/\(A\)/ { color = "PRI_A" }
/\(B\)/ { color = "PRI_B" }
/\(C\)/ { color = "PRI_C" }
/\([D-Z]\)/ { color = "PRI_X" }
{
gsub(/@[^ ^[]*/, highlight("COLOR_CONTEXT") "&" highlight(color));
gsub(/\+[^ ^[]*/, highlight("COLOR_PROJECT") "&" highlight(color));
sub(/[0-9]{4}(-[0-9]{2}){2}/, highlight("COLOR_DATE") "&" highlight(color));
print
}
'
else
cat
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment