branches: front
Clone
clone: git://shithub.us/sirjofri/todofs gits://shithub.us/sirjofri/todofs
push: hjgit://shithub.us/sirjofri/todofs
Last commit
About
todo filesystem
* this is an experiment. *
* It's not the best, both design and implementation. *
Usage:
todofs path/to/dir
the todo-directory must contain at least one file called `index`:
key=config nextid=1
todofs -c path/to/dir initializes the directory with this index file.
It will be filled with metadata when creating tasks and statuses.
Console interface (ctl file):
addstatus <name> - create a new status
dump - write data back to disk. Shouldn't be needed.
Task interaction:
Imagine the following scenario:
/mnt/todo/StatusA/1-First_Task/
/mnt/todo/StatusB/2-Second_Task/
; cd /mnt/todo
To move task 1 to StatusB, use create with the task id:
; touch StatusB/1
To edit a task, just open/read/write the task/data file. This will be forwarded to files-on-disk automatically.
The data file can have a file extension, depending on the file extension. This should be used for plumbing. To change this file extension, just rename the data file:
; mv 2-Second_Task/data 2-Second_Task/data.txt
To rename a task:
; mv StatusB/2-Second_Task 'StatusB/My other task'
; ls StatusB/2*
2-My_other_task
To create a new task, create it:
; touch 'StatusA/New Task'
; ls StatusA
3-New_Task
To change assignee/group:
; chgrp -o alice StatusA/3-New_Task
; chgrp engineering StatusA/3-New_Task
; ls -l StatusA
... alice engineering ... 3-New_Task
It is also possible to change the metadata by file. The filesystem looks like this:
/mnt/todo/StatusA/1-First_Task/title
/mnt/todo/StatusA/1-First_Task/assignee
/mnt/todo/StatusA/1-First_Task/group
/mnt/todo/StatusA/1-First_Task/data (or data.extension)