rem2yaml - convert the output of remind(1) to YAML
rem2yaml [option...] [file...]
rem2yaml -h|--help
rem2yaml -V|--version
rem2yaml processes the output produced by remind(1) as intended for back-end programs (such as rem2ps(1)), printing reminders as a stream of YAML documents.
The input to rem2yaml must have been generated by remind(1) using its options -p and -l.
rem2yaml's output comes in two flavors, consolidated and unconsolidated. In unconsolidated form, each document in the YAML stream is a single reminder; consolidation brings all of a day's reminders together into a single document. These two cases are illustrated below.
If no file is specified, or if the file name - is specified, standard input will be processed.
-
Consolidate events for each day. Each YAML document in the output will represent a single day, with the reminders for that day gathered into a reminders element.
reminders
For example, consider the following remind(1) input file:
# /home/nkuitse/dt/foo.rem REM Tue MSG %"Organizing day%" REM Mar 1 MSG %"Ulysses's birthday%"% REM Mar 4 2008 AT 08:30 %"Pick up Aunt Yolanda from the airport%"%
Running this through remind(1) at some time during March 2008 yields all reminders for that month in a compact form:
$ remind -p -l /home/nkuitse/dt/foo.rem # rem2ps begin March 2008 31 6 0 Sunday Monday Tuesday Wednesday Thursday Friday Saturday February 29 April 30 # fileinfo 2 /home/nkuitse/dt/foo.rem 2008/03/01 * * * * Ulysses's birthday # fileinfo 1 /home/nkuitse/dt/foo.rem 2008/03/04 * * * * Organizing day # fileinfo 1 /home/nkuitse/dt/foo.rem 2008/03/11 * * * * Organizing day # fileinfo 3 /home/nkuitse/dt/foo.rem 2008/03/18 * * * 510 8:30am Pick up Aunt Yolanda from the airport # fileinfo 1 /home/nkuitse/dt/foo.rem 2008/03/18 * * * * Organizing day # fileinfo 1 /home/nkuitse/dt/foo.rem 2008/03/25 * * * * Organizing day # rem2ps end
Running this through b<rem2yaml> without consolidation yields a series of six YAML documents, one for each reminder. For example, the reminders for March 18 would look something like this:
--- description: Organizing day date: 20080318 date_time: 20080318 year: 2008 month: 3 day: 18 day_of_week: 2 all_day: 1 event: 2 file: /home/nkuitse/dt/foo.rem line: 1 instance: 3 --- description: Pick up Aunt Yolanda from the airport date: 20080318 date_time: 20080318T083000 year: 2008 month: 3 day: 18 day_of_week: 2 hour: 8 minute: 30 event: 3 file: /home/nkuitse/dt/foo.rem line: 3 instance: 1
With consolidation, these two reminders would be brought together like so:
--- date: 20080318 year: 2008 month: 3 day: 18 day_of_week: 2 reminders: - description: Organizing day date: 20080318 date_time: 20080318 year: 2008 month: 3 all_day: 1 day: 18 day_of_week: 2 event: 2 file: /home/nkuitse/dt/foo.rem line: 1 instance: 3 - description: Pick up Aunt Yolanda from the airport date: 20080318 date_time: 20080318T083000 year: 2008 month: 3 day: 18 day_of_week: 2 hour: 8 minute: 30 event: 3 file: /home/nkuitse/dt/foo.rem line: 3 instance: 1
Do not consolidate events into days. This is the default, so this option is generally only used after -d, -b, -e, and -l.
If a day (within any applicable range) has no reminders associated with it, generate a placeholder for the day with an empty reminders list.
placeholder
This option turns on consolidation, and must be used in conjunction with it.
Turn on consolidation and limit output to the specified date. The date must be provided in one of these formats:
YYYYMMDD YYYY-MM-DD YYYY/MM/DD
Turn on consolidation and limit output to dates on or after the specified date. The date format is the same as for option -d.
Turn on consolidation and limit output to dates on or before the specified date. The date format is the same as for option -d.
Turn on consolidation and limit output to dates strictly before the specified date. The date format is the same as for option -d.
Note the difference between -e and -l: the former includes the given date, while the latter excludes it.
Be verbose.
Print help information and exit.
Print the version number and exit. If the -v or --verbose option is specified, print out additional information.
View the manual page for rem2yaml.
View the license under which rem2yaml is distributed.
Paul Hoffman (nkuitse AT nkuitse DOT com)
Copyright 2007-2008 Paul M. Hoffman.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl:
the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version;
or
the "Artistic License".
For the full text of these licenses, see the script file itself or enter the command rem2yaml -L.
remind(1), rem2ps(1), Remind::Parser, YAML.
To install Remind::Parser, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Remind::Parser
CPAN shell
perl -MCPAN -e shell install Remind::Parser
For more information on module installation, please visit the detailed CPAN module installation guide.