todolist v0.3
    - Tired of non flexible task manager, i just code this by myself.
    - Nothing special, just useful for me.

File structure (todo.list) [Not fixed! you could use another one]:
    - one task per line
    - task define as: "priority[int] | task topic[string] | context[string] | deadline:yyyymmdd | percent[float]"

What you can do with this:
    - Add task / Get task with more priority / Show all the task you have undone.
    - Filter task by context (useful when you want to focus only on one task for 
work i.e)
    - Get the number of task you have left, to have an overview of the big picture.
    - Remove task as well to remove while you'll keep it into a todo.done file for
the record.
    - Select/update context you want to work with.
    - With little bit external programing, get events when deadline is near 
to final day. [v0.2]
    - I use this with DWM, displaying it in my statusbar, something like this:
dl0[2] dl7[10] T[15] { 1 | Make todolist v0.2 | Programming | 10% } || Thu Feb 28 01:59:26 AM
    Where dl0[int] is the number of task with today's deadline (todolist -t -dl 0)
    Where dl7[int] is the number of task with next 7 days deadline (todolist -t -dl 7)
    Where T[int] is the total number of task left (todolist -t) 
    Last one, { prior|task|context|percent } is the top task in priority order (todolist -g)
    - You could also set shortcuts for filter tasks by context like:
        - atl+w: ./todolist --context --update "Work"
        - alt+p: ./todolist --context --update "Programming" 

DWM Statusbar script code:
while true 
    xsetroot -name "dl0[$(todolist -t -dl 0)] dl7[$(todolist -t -dl 7)] T[$(todolist -t -t)]: { $(todolist -g) } || $(date +"%a %b %d %r")"
    sleep 1s
done &

Usage: todolist [opt] {text}
    -a --add {text}: add task
    -e --edit: edit todo.list with vim
    -d --done {word(s)/regex}: delete task matched and copy to todo.done 
    -rm --remove {word(s)/regex}: remove task from todo.list (no copy)
    -s --show: show all tasks
    -s --show -dl --deadline [number_days]: show all task with deadline (number days optional)
    -s --show -c --context {context}: filter all tasks by context
    -g --get: get task with high priority
    -t --total -t --task: return total pending task
    -t --total -dl --deadline {number_days} [-s --show]: return total task where 'deadline <= number_days'
    -r --report: show all task done
    -c --context -s --show: show all available context
    -c --context -u --update {context}: update context to play with (all: for anything)
    -s --schedule: schedule tasks - unix-like [NOT IMPLEMENTED]
    -v --version: show version
    -h --help: this msg.
    todolist -s
    todolist -d "fuck off"
    todolist --context --update "Work"
    todolist -a "1|Get deadline feature done|deadline:20130422"

    0. modify config paths or app name in todolist.conf if you like.
        - NOTE: by changing app name, you could have several todolist apps
living together in your system. Anyone with different todo.list etc. 
    1. ./install.sh
    2. Enjoy.

    1. Clone from this git repo.
    2. mkdir local directory for your todo files 
        - i.e: mkdir -p /home/$(whoami)/.todolist
    3. vim todolist.conf
        - change path_app value with "/home/$(whoami)/.todolist"
    4. sudo cp todolist.conf /usr/local/etc/
    5. sudo ln -s $(pwd)/todolist.sh /usr/local/bin/todolist
    6. Ready. $ todolist -a "1 | First task | Todo | 100%"
    7. Enjoy.

    - Have a look into the BUGS file for non-critical bugs.