Zen - Command Line Task Management
==================================
Install
-------
* There is no installation to be done, in the sense of
a setup.py. However, you do have to create a file to
hold your projects and change the FILE_NAME setting in
zen_io.py.
* Zen does not currently support adding projects, so you
must create them manually. Use the zen_sample.db file
as a guide.
* We recommend that you make an alias to your zen.py file,
i.e. 'alias zen='/Users/brian/zen/zen.py'. Make sure
zen.py is executable.
Notes
-----
* Zen stores your projects and data in plain text, to make
it easy to manipulate if you don't have access to Zen.
* They are stored in YAML format - see http://www.yaml.org
* A project called 'todo list' must exist.
* Each project must have a name, and each task must have
a desc (description).
* You can also include as many fields as you want for tasks
and projects; these go under a fields: heading.
* The same applies for tags; they go under a tags: heading.
Commands
--------
* To view usage instructions: 'zen help'
* To view a list of projects: 'zen' | 'zen projects'
* To view tasks for a project: 'zen tasks -p todo'
'-p' and '--project' specify a project name. The parameter
passed to this can be shortened as long as only one project
begins with that string. You can also use numbers.
If you do not supply a project parameter to this command, Zen
will list tasks for all projects.
* To view details for a task: 'zen details -p todo -t add'
'-t' and '--task' specify a task. They autocomplete just
like project names.
If you don't specify a task name, Zen will list tasks for
the specified project.
* To search by tag: 'zen tagsearch --tag required'
You can also specify a project to limit your search. If you
don't specify a tag, Zen will list all tags.
* To add a task: 'zen addtask -p todo this is a task'
Anything that besides the project name becomes the task
description. If you don't specify a project name, Zen will
add the task to the project 'todo list'. If you include a
string such as 'due=tuesday', Zen will create a field called
'due' with a value of 'tuesday'.
* To delete a task: 'zen deletetask -p todo -t add'
This will delete any task that starts with the string provided
by '-t'. If you don't supply a project, Zen will search
through all projects and delete matches.
* To search: 'zen search --query todo'
This does a search of all names and descriptions of projects
and tasks. You can use '--query' or '--term' to specify a
search term. If you use no flag, the text after 'search' will
be used as the search term.
You can also specify a project to limit the search to.
* To add a project: 'zen addproject this is a new project'
This adds a project with the name being the text after the
'addproject' command. It does not currently support specific
fields like the 'addtask' command.
More Notes
----------
* Most commands can be shortened:
* The 'projects' command can be replaced with 'p'
* The 'tasks' command can be replaced with 't'
* The 'details' command can be replaced with 'd'
* The 'tagsearch' command can be replaced with 'ts'
* The 'addtask' command can be replaced with 'a' or 'add'
* The 'deletetask' command can be replaced with 'dt' or 'del'
* The 'search' command can be replaced with 's'
* The 'addproject' command can be replaced with 'ap'
* When using numbers to specify projects or tasks, remember that
the lists are zero indexed.
File Listing
------------
* zen.py - Parses command line functions
* zen_io.py - Holds class definitions and file parsing and writing.
* zen_logic.py - The actual program functionality.
* zen_utilities.py - Contains various utility functions used by zen_logic.
* zen_usage.py - Contains the help/usage message.
* zen_sample.db - Contains a sample YAML formatted project list.