Contents
Copyright © 2017 Spartatek AB
2017-07-21 15:55
Copyright (C) 2014 Spartatek AB
contact@spartatek.se http://spartatek.se
EASYDONEIT CLI is free software: you can redistribute it and/or modify it under the terms of the GNU Genereric Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
EASYDONIT CLI is distributed in the hope that it will be usesul, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Genereral Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see GNU licenses
This manual is written using edi cli version 1.18. This documentation describes how to setup and use edi cli from beginner to advanced levels.
edi help is the command that prints the complete help, to get help for a specific command type in a terminal edi help command. Users can store the database in dropbox and share it with other users to collaborate.
Not all options are described here, only common use cases are decribed. For further details, consult Easydoneit help (edi help).
Edi database is file based and easy to edit with standard command line tools. Read Database format for details.
Easydoneit is a system that stores tasks consisting of text or other media in a tree of folders. The system provides functions to quickly retrieve tasks on any device.
Here are the main principles:
Download and unzip the package from Easydoneit CLI
Install the python package from the python website or your system's package manager.
Test the installation, run the 'edi' command (located at the root of package) in a terminal:
> ~/easydoneit/edi
This command displays the help.
In the rest of this document, ~/easydoneit/edi or Easydoneit cli is referred as edi.
edi creates an empty database the first time it runs on a computer. The database path is:
~/easydoneit_data/
To know which version is installed, run:
> edi version Version v00026
Easydoneit cli has a command pattern similar to git. The main command is edi and the first parameter is a subcommand:
edi command
To display the help for all commands or a single command use help.
To create a task, use the command edi cr
This command starts the vim text editor, simply write the description of the first task and save. To change text editor, read Configuration.
To display the list of tasks in the database, use the command edi lsid
The result looks like this:
> edi lsid 1 - ~/easydoneit_data k4,WQKZB0hQwi5FT - Active - 0 - first task
k4,WQKZB0hQwi5FT is the id associated with the task, it is a unique reference for this task.
Active is the state, there are 6 possible states:
Active, Done, Ongoing, Pending, Inactive, Void
0 is the position of the task in the group. first task is the task title, first line in the description.
The position of the tasks in lists is kept by edi, read Ordering.
To display the description of a task, use the command edi cat id
I run the command with my task id:
> edi cat k4,WQKZB0hQwi5FT k4,WQKZB0hQwi5FT - Active - first task description
The pattern to edit a task is similar edi cat edi vi id
I run the command with my task id:
> edi vi k4,WQKZB0hQwi5FT
The command starts vim, change the description and save. To change text editor, read Configuration.
To change the state of a task, 2 parameters are needed, the id and a number corresponding to a state:
0 is Active 1 is Done 2 is Ongoing 3 is Pending 4 is Inactive 5 is Void
To set my task to done state, I run:
> edi set k4,WQKZB0hQwi5FT 1
> edi ls
1 - ~/easydoneit_data
Done - 0 - first task
This section describes common use cases.
Easydoneit keeps the position of the tasks in the list. The command order changes the position of a task in the list.
For example:
I create a new task to have 2 tasks in my list
> edi cr
qd5JA51PphJSMOZy
> edi ls
1 - ~/easydoneit_data
Done - 0 - first task
Active - 1 - second task
> edi order root 1 0
> edi ls
1 - ~/easydoneit_data
Active - 0 - second task
Done - 1 - first task
The second task is now in first postion (position 0).
The mkdir command converts a task to a group. The group is a list of tasks in a specific order.
For example:
> edi mkdir k4,WQKZB0hQwi5FT
Use edi ls to display all the tasks and groups:
> edi ls
1 - ~/easydoneit_data
Active - 0 - second task
Done - 1 - GROUP first task
4,WQKZB0hQwi5FT - Done - 0 - GROUP first task
To create a task in the group first task, use the cr command with the id pararmeter:
For example:
> edi cr k4,WQKZB0hQwi5FT
5z6OFASktsT,Zbz2
> edi ls
1 - ~/easydoneit_data
Active - 0 - second task
Done - 1 - GROUP first task
k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task
Active - 1 - third task - title and subject
The group tree is stored in the file system, use the command edi tree to find out the path to the tree.
For example:
> edi tree /home/remy/easydoneit_data/tree trees 1 - ~/easydoneit_data/tree
Most commands figure out which group we are in when the terminal is in the tree path:
> cd ~/easydoneit_data/tree
> edi ls
Active - 0 - second task
Done - 1 - GROUP first task
edi ls displays the tasks in current group only.
To move into the first task group, use the regular cd command:
> cd k4,WQKZB0hQwi5FT
> edi ls
k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task
Active - 1 - third task - title and subject
To display a task description, use cat with the position parameter:
> edi cat 1 5z6OFASktsT,Zbz2 - Active - third task - title and subject description
The vi command follows a similar pattern:
> edi vi 1
This edits the task at position 1 in current group.
The set command to change states also follows a similar pattern:
> edi set 1 2
> edi ls
k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task
Ongoing - 1 - third task - title and subject
This changes the task at position 1 to 'Ongoing'.
The order command needs only the at_position and to_position parameters:
> edi cr bIYshuCqYhxcJaZ9 > edi order 2 1 > edi lsid k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task bIYshuCqYhxcJaZ9 - Active - 1 - fourth task 5z6OFASktsT,Zbz2 - Ongoing - 2 - third task - title and subject
The mkdir command takes the position as parameter as well:
> edi mkdir 1 > edi lsid k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task bIYshuCqYhxcJaZ9 - Void - 1 - GROUP fourth task 5z6OFASktsT,Zbz2 - Ongoing - 2 - third task - title and subject
When the terminal is in the tree, edi cr creates a task in the group the terminal stands in:
> cd ~/easydoneit_data/tree/k4,WQKZB0hQwi5FT > edi cr iKptM9L_aW0VNwg5 > edi lsid k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task bIYshuCqYhxcJaZ9 - Void - 1 - GROUP fourth task 5z6OFASktsT,Zbz2 - Ongoing - 2 - third task - title and subject iKptM9L_aW0VNwg5 - Active - 3 - fifth task
An other way to create tasks, is to use the command add.
For example:
> echo '6 task' > ~/task_description.txt > edi add ~/task_description.txt lG4VP0H3Han5qkQe > edi lsid k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task bIYshuCqYhxcJaZ9 - Void - 1 - GROUP fourth task 5z6OFASktsT,Zbz2 - Ongoing - 2 - third task - title and subject iKptM9L_aW0VNwg5 - Active - 3 - fifth task lG4VP0H3Han5qkQe - Active - 4 - 6 task
The format for URLs or web links in descriptions is like the markdown format:
[title](URL)
For example:
[Easydoneit on Apple App store](https://itunes.apple.com/se/app/easydoneit/id894650006?l=en&mt=8)
So far, tasks are added at the bottom of the list, this is changed with the command topbot.
For example:
> edi topbot top
> edi cr
79_FWZTSw_p33Lkj
> edi ls
k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task
Active - 1 - 7 task
Void - 2 - GROUP fourth task
Ongoing - 3 - third task - title and subject
Active - 4 - fifth task
Active - 5 - 6 task
To delete a task, use:
edi rm pos or
For example:
> edi rm 1
> edi ls
k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task
Void - 2 - GROUP fourth task
Ongoing - 3 - third task - title and subject
Active - 4 - fifth task
Active - 5 - 6 task
To move a task to another group, use:
For example:
> edi mv 4 bIYshuCqYhxcJaZ9 > edi lsid k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task bIYshuCqYhxcJaZ9 - Void - 1 - GROUP fourth task 5z6OFASktsT,Zbz2 - Ongoing - 2 - third task - title and subject lG4VP0H3Han5qkQe - Active - 3 - 6 task
To duplicate a task, use:
For example:
> edi cp 2 bIYshuCqYhxcJaZ9 EOvWFSwvST0VmeMi > cd bIYshuCqYhxcJaZ9 > edi lsid bIYshuCqYhxcJaZ9 - Void - 0 - GROUP fourth task EOvWFSwvST0VmeMi - Ongoing - 1 - third task - title and subject iKptM9L_aW0VNwg5 - Active - 2 - fifth task
A task can be listed in several groups, tasks are linked to other groups:
For example:
> cd .. > edi ln 3 bIYshuCqYhxcJaZ9 > cd bIYshuCqYhxcJaZ9 > edi lsid bIYshuCqYhxcJaZ9 - Void - 0 - GROUP fourth task lG4VP0H3Han5qkQe - Active - 1 - LINK 6 task EOvWFSwvST0VmeMi - Ongoing - 2 - third task - title and subject iKptM9L_aW0VNwg5 - Active - 3 - fifth task
The show command lists the groups in which the task is visible:
For example:
> edi show 1 k4,WQKZB0hQwi5FT first task k4,WQKZB0hQwi5FT - Done - first task k4,WQKZB0hQwi5FT/bIYshuCqYhxcJaZ9 first task/fourth task bIYshuCqYhxcJaZ9 - Void - fourth task
The task at position 1 is in the group first task and the group first task/fourth task.
The commands to list tasks are edi ls and edi lsid. These commands have filters to list tasks only in specific states:
For example:
> edi stfi active disable
> edi ls
bIYshuCqYhxcJaZ9 - Void - 0 - GROUP fourth task
Ongoing - 2 - third task - title and subject
This hides the tasks in active state.
To show tasks in active state:
> edi stfi active enable
> edi ls
bIYshuCqYhxcJaZ9 - Void - 0 - GROUP fourth task
Active - 1 - LINK 6 task
Ongoing - 2 - third task - title and subject
Active - 3 - fifth task
Colors (both foreground and background) can be set for tasks and groups. They are visible in the html output and in GUIs.
For example:
> edi bc 1 50,50,50,255 > edi bc 1 50,50,50,255
To generate an html for a group, use:
On the generated html, the task titles and states are in the first column, the task descriptions are in the second column.
For example:
> edi html > ~/group.html
Groups can be exported as a text file in reStructuredText format:
For example:
> edi re -A ============ fourth task ============ Agenda ====== #. LINK 6 task #. third task - title and subject #. fifth task LINK 6 task =========== third task - title and subject ============================== description fifth task ========== This is Easydoneit CLI
To search a word in the database, use:
For example:
> edi search 'CLI' iKptM9L_aW0VNwg5 - fifth task:This is Easydoneit CLI
When the terminal is in the tree, 'edi search' searches in current group. Otherwise, 'edi search' searches in the complete database.
The user configuration is saved in ~/easydoneit.ini
Easydoneit can work with many databases simultaneously. To create a database, use:
For example:
> edi createDatabase new_project ~/new_project
Databases are listed with the command:
edi data
For example:
> edi data Selected data_location /home/remy/easydoneit_data Available databases 1 - ~/easydoneit_data new_project - /home/remy/new_project
The command 'edi path' shows the system path for a task:
For example:
> edi path 1 /home/remy/easydoneit_data/tasks/lG4VP0H3Han5qkQe
edi uses only the databases in the list of selected databases:
To select databases:
Both databases are selected:
> edi select Selected databases 1 1 - ~/easydoneit_data > edi select 1,new_project > edi select Selected databases 1,new_project 1 - ~/easydoneit_data new_project - /home/remy/new_project
The default database is the database used when it is ambiguous which database to select:
edi default database_name
For example:
> edi default
Default for new tasks
1
~/easydoneit_data
> edi default new_project
> edi default
Default for new tasks
new_project
/home/remy/new_project
> cd
> edi cr
he1h,wiJJliodBtD
> edi ls
1 - ~/easydoneit_data
Active - 0 - second task
Done - 1 - GROUP first task
k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task
Void - 1 - GROUP fourth task
Ongoing - 2 - third task - title and subject
Active - 3 - LINK 6 task
bIYshuCqYhxcJaZ9 - Void - 0 - GROUP fourth task
Active - 1 - LINK 6 task
Ongoing - 2 - third task - title and subject
Active - 3 - fifth task
new_project - /home/remy/new_project
Active - 0 - new project task
Tasks and groups can copied and moved to other databases:
For example:
> cd ~/easydoneit_data/tree > edi cpb 0 new_project root xRVBI1Qez64bLb1L > cd > edi lsid 1 - ~/easydoneit_data qd5JA51PphJSMOZy - Active - 0 - second task k4,WQKZB0hQwi5FT - Done - 1 - GROUP first task k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task bIYshuCqYhxcJaZ9 - Void - 1 - GROUP fourth task 5z6OFASktsT,Zbz2 - Ongoing - 2 - third task - title and subject lG4VP0H3Han5qkQe - Active - 3 - LINK 6 task bIYshuCqYhxcJaZ9 - Void - 0 - GROUP fourth task lG4VP0H3Han5qkQe - Active - 1 - LINK 6 task EOvWFSwvST0VmeMi - Ongoing - 2 - third task - title and subject iKptM9L_aW0VNwg5 - Active - 3 - fifth task new_project - /home/remy/new_project he1h,wiJJliodBtD - Active - 0 - new project task xRVBI1Qez64bLb1L - Active - 1 - second task > cd ~/easydoneit_data/tree/k4,WQKZB0hQwi5FT > edi mvb 2 new_project root eXLB7SC6dbGVLW4l > cd > edi lsid 1 - ~/easydoneit_data qd5JA51PphJSMOZy - Active - 0 - second task k4,WQKZB0hQwi5FT - Done - 1 - GROUP first task k4,WQKZB0hQwi5FT - Done - 0 - GROUP first task bIYshuCqYhxcJaZ9 - Void - 1 - GROUP fourth task lG4VP0H3Han5qkQe - Active - 3 - LINK 6 task bIYshuCqYhxcJaZ9 - Void - 0 - GROUP fourth task lG4VP0H3Han5qkQe - Active - 1 - LINK 6 task EOvWFSwvST0VmeMi - Ongoing - 2 - third task - title and subject iKptM9L_aW0VNwg5 - Active - 3 - fifth task new_project - /home/remy/new_project he1h,wiJJliodBtD - Active - 0 - new project task xRVBI1Qez64bLb1L - Active - 1 - second task eXLB7SC6dbGVLW4l - Ongoing - 2 - third task - title and subject
The text editor used in 'edi cr' and 'edi vi' is configured in the section [settings] of ~/.easydoneit.ini:
[settings] editor = vi
edi data displays the root path to all available databases. The edi database consists of 3 folders: tasks, groups and tree:
Thanks for using Easydoneit! Easydoneit is also available on the apple app store. The document is written using version 26, for commands in later versions, checkout edi help and the changelog on Easydoneit CLI.
The last video shows how to use edi list, at, email, autolink, many, stats, reset and the database log file.