public
Description: command line based task management
Homepage: http://brianreily.com/projects/zen
Clone URL: git://github.com/breily/zen.git
zen /
name age message
file README Sat Jan 03 14:29:03 -0800 2009 readme changes [Brian Reily]
file zen.py Sat Jan 03 14:29:03 -0800 2009 readme changes [Brian Reily]
file zen_io.py Sat Jun 28 20:25:04 -0700 2008 added some TODOs [Brian Reily]
file zen_logic.py Sat Jun 28 20:25:04 -0700 2008 added some TODOs [Brian Reily]
file zen_sample.db Wed May 21 16:14:00 -0700 2008 Added deletetask functionality [Brian Reily]
file zen_usage.py Wed May 28 01:08:31 -0700 2008 Moved usage instructions into its own file [Brian Reily]
file zen_utilities.py Wed May 28 01:08:31 -0700 2008 Moved usage instructions into its own file [Brian Reily]
README
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.