An add-on for Gina Trapani's todo.txt script, allowing the automatic addition of recurring tasks to the todo list.
Once installed, the
todo.sh recur command should be run from a
cron job (or
other scheduler), once a day. Any tasks applicable to the current date will be
appended to the todo list (if they're not already present).
The recurring tasks are pulled from a
recur.txt file, living in the same
todo.txt. Each line in
recur.txt has the syntax:
[week[,week ...] ] day : task
weekis an optional list of weeks - "first", "second", "third", "fourth", "fifth" or "last". Weeks are separated by commas only (no spaces).
dayis one of "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" or "sunday". If a task needs to happen on two different days of the week, you'll need two lines.
taskis anything that might appear in a todo.txt task, including priority, contexts or projects. Do not include an added-on date, however.
sunday: (A) Weekly review of projects list monday: Take out the trash @home last saturday: Apply the dog's flea medicine first,third friday: Collect and file expenses daily: run the dishwasher
Note that the add-on attempts to be smart about things, so if you ran this on a
todo.txt already contained:
(B) Weekly review of projects list @home
It would notice the task with the same text (ignoring priority, context, project) and add nothing.
Download the latest recur archive, and unpack it in a temporary directory, e.g.
tar zxf Todotxt-Recur-1.02.tar.gz cd Todotxt-Recur-1.02
If you are using the standard
todo.sh location for add-ons
$HOME/.todo.actions.d), you'll want to run:
perl Makefile.PL make make test sudo make install
to install the recur script and its component modules.
There are a few common Perl modules you'll need if you want to run the
make test step:
Test::Class. These are
not required for normal script operation.
If your add-ons live elsewhere, you'll need to specify that directory as an
INSTALLSITESCRIPT option when generating the Makefile.
perl Makefile.PL INSTALLSITESCRIPT=/some/other/directory make make test sudo make install
(Installing the modules in a user-specific directory, rather than system-wide,
calls for setting
LIB= as appropriate, and is left as an exercise for the reader.)
See the general Creating and Installing Add-Ons documentation to learn where your add-ons live if you're unsure.