todo.sh as modified by Lorance Stinson todo.sh is a very handy task manager. It is written in shell script and stores it's data in plain text files. This has many advantages, too many to go into here. See http://todotxt.com for more information. I have made extensive modifications to the todo.sh script by Gina Trapani. See http://todotxt.com for more information on the original. This is a superbly useful script. The main change involved adding a unique ID to each todo patterned after that used by hiveminder.com. This was done to allow for an activity history and for each todo to have comments. The former because I forget things and have cats, the latter because I tend to have long running tasks. A detailed list of the changes can be found in the file CHANGES. UPGRADING: Unfortunately all the changes require alterations to the configuration file, todo.txt and done.txt. To make this as painless as possible I have included the script migrate.sh. It will create the two new files and new directory where your todo files are stored, update the .todo configuration file and add a unique ID to each task in todo.txt and done.txt. It will backup each file before altering it and attempt to make sure it has not already updated the files before by checking for a backup of the file and then checking the contents of the file for the changes it makes. No actions are performed unless the appropriate command line option is specified. See './migrate.sh -h' for more information. The normal process should be to run './migrate.sh -c -n -u -d PATH_TO_.TODO'. WARNING: I have tested migrate.sh very thoroughly and put in as many checks as I can think of. But I have no way of knowing for sure it will work correctly on every system. PLEASE make backups of your .todo configuration file, todo.txt and done.txt before using it and make sure they were not damaged before proceeding to use todo.sh. INSTALLATION: UPDATE: If todo.sh is run and it can not find it's configuration file it will ask it it can create it. If you let it it will create the directory $HOME/.todo and create the file $HOME/.todo/todorc with default settings. A sample .todo configuration file is included. Use this if you are installing todo.sh for the first time. There are two ways to install todo.sh. The original method is to copy .todo to your home directory, make a directory to hold your todo files (eg. ~/todo) then edit .todo to point to that directory. The file can also be named .todorc. The alternate method is to make a directory called ~/.todo and copy the .todo configuration file to ~/.todo/todorc. This latter method is the default for the sample .todo file. Then for either method copy todo.sh to a directory in your path. I keep it in ~/bin/ and make an alias so I can call it as t. /usr/local/bin would be a good place for multiuser systems. Optionally copy the manual pages from man into an appropriate location then update your whatis and/or locate databases. Installation can be done using a different name if desired. The name of the default configuration file is based on the name the script is given. So if it is installed or linked to as note.sh it will look for ~/.note as it's configuration file/directory.