Just to give you an idea:

Here's input.rem:

  BANNER %
  saturday sunday thursday msg %y-%t-%r category: work Present report.%
  tuesday wednesday msg %y-%t-%r category: home Clean kitchen.%
  july 4 2011 through july 12 2011 msg %y-%t-%r category: market Fish stock.%
  sunday msg %y-%t-%r Relax.%
  thursday at 19:00 msg %y-%t-%r Continue reading "Anna Kerenina."%

Here's color_rem.awk:

  BEGIN{
    color["default"]="37"
    color["work"]="31"
    color["home"]="32"
    color["market"]="36"
  }
  {
    printf $1
    msg=substr($0, match($0, " "))
    categ_re="category: [^ ][^ ]*"
    match(msg, categ_re)
    printf("\033[" \
      color[substr(msg, RSTART+length("category: "), RLENGTH-length("category: 
"))] "m" \
      "%s\033[" color["default"] "m\n", 
      substr(msg, RLENGTH+2))
  }

Here's your pipeline:

$ remind -h - '*30' < input.rem | awk -f color_rem.awk


This awk program is very fragile and not very generalizable,
but maybe it's an okay place to start hacking.
To be colorized, an input rec must have the string "category: "
concatenated with one of the strings "work", "home", or "market".
It also needs a leading non-blank date expression such as the one repeated in 
input.rem.
It would be preferable to add another filter to save you having to re-type it 
in every msg:

$ sed 's/ [Mm][Ss][Gg] /&%y-%t-%r /' input.rem | remind -h - '*30' | awk -f 
color_rem.awk

...And then, for example, the final line of input.rem would be merely:

  thursday at 19:00 msg Continue reading "Anna Kerenina."%

Incidentally, awk really isn't that hard and I still think if you become 
comfortable with only one language, awk should be it.  There 
aren't any languages I know of that are both simpler and more powerful.  It's 
ubiquitous--I haven't even seen many embedded systems without it.  And it does 
practically everything the average user could possibly need--most of which with 
remarkable ease.

-Derek

_______________________________________________
Remind-fans mailing list
[email protected]
http://lists.roaringpenguin.com/cgi-bin/mailman/listinfo/remind-fans
Remind is at http://www.roaringpenguin.com/products/remind

Reply via email to