shithub: todofs


branches: front

Clone

clone: git://shithub.us/sirjofri/todofs gits://shithub.us/sirjofri/todofs
push: hjgit://shithub.us/sirjofri/todofs

Last commit

efe80883 – sirjofri <[email protected]> authored on 2024/06/27 13:05
adds file extension rename support

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)