Skip to content

Instantly share code, notes, and snippets.

@inkarkat
Forked from ginatrapani/todo.txt final filter
Created January 21, 2011 09:01
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save inkarkat/789447 to your computer and use it in GitHub Desktop.
Save inkarkat/789447 to your computer and use it in GitHub Desktop.
Specially colorizes priority, date and project.
#!/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