Accessible time keeping/tracking

Tom Masterson kd7cyu at yahoo.com
Fri Mar 7 03:52:08 UTC 2008


Thanks.

Tom


On Thu, 6 Mar 2008, Tim Chase wrote:

>> Does anyone know of an application for tracking time against a
>> task/project that is accessible?  It can also be console based 
>
> After playing with the other projects, I tossed together a command-line 
> time-tracker with a little Python code in a couple hours.  It doesn't have a 
> fancy installer, but it's just the one python file.  The only dependencies 
> are Python and sqlite3. Python 2.5 comes with sqlite3, so that's an easy way 
> to go.  It should also work in Python 2.4 as long as you've taken the extra 
> step to get sqlite installed.
>
> You can snag it at
>
>  http://tim.thechases.com/bvi/tt.py
>
> The "tt" stands for time-tracker.  To make it easy, you may want to put a 
> link to it in your path.  Assuming /usr/local/bin is in your path, you can do 
> the following as root:
>
>  bash# cd /usr/local/bin
>  bash# wget http://tim.thechases.com/bvi/tt.py
>  bash# chmod ugo+x tt.py
>  bash# ln -s tt.py tt
>
> It has a feel much like CVS/Subversion/Mercurial/etc.  All the commands or of 
> the form
>
>  tt [options] ACTION [parameters]
>
> You can have multiple projects, each of which have a variety of blocks of 
> time associated with them (a block of time has a start-time, an optional 
> end-time, and an optional description--if you're working on it, the end-time 
> isn't set)
>
> You start it up by using the INIT action:
>
>  bash$ tt init
>
> This will create ~/.timetracker/[username].db
>
> This is just a sqlite3 DB, so you can use any SQL-aware tools for querying 
> this that you want.  It also creates a default project, boringly called 
> "Default".  If you want to specify the project name, you can do so on the 
> command line:
>
>  bash$ tt init "Spanish Inquisition"
>
> It will automatically start the timer for your first task.  This task doesn't 
> have any note associated with it, but you can include that too
>
>  bash$ tt init "Spanish Inquisition" "Putting in comfy chair"
>
> When you're done with a task, you can either move on to another task which 
> will automatically stop the previous task:
>
>  bash$ tt start "Poking with soft cushions"
>
> Or you can explicitly stop whatever you're working on and start a new task 
> later:
>
>  bash$ tt stop
>
> To add further projects, use the ADD command:
>
>  bash$ tt add "Finding the Holy Grail"
>
> You can list your available projects:
>
>  bash$ tt ls
>  1: Spanish Inquisition
>  2: Finding the Holy Grail (current)
>
> and you can list the tasks and the times taken for a given project
>
>  bash$ tt ls 1
>  [output follows]
>
> The current project (the one to which START adds the next block of time) is 
> shown in the output of the "ls" command.  If you want to start a task for the 
> non-current project, you can just include the project # as the first 
> argument:
>
>  bash$ tt ls
>  1: Spanish Inquisition
>  2: Finding the Holy Grail (current)
>  bash$ tt start 1 "Maniacal laughter"
>  bash$ tt ls
>  1: Spanish Inquisition (current)
>  2: Finding the Holy Grail
>
> When you're done with a project, you can mark it as deleted:
>
>  bash$ tt del 1
>  Deleted
>  bash$ tt ls
>  2: Finding the Holy Grail (current)
>
> If you delete the current project, the most recently added project is made 
> current, or it notifies you that you have no projects.  If you have no 
> current project and attempt to START a task, it will notify you.
>
> To show all projects, including deleted projects, use the "-a" or "--all" 
> parameter:
>
>  bash$  tt ls -a
>  1: Spanish Inquistion (deleted)
>  2: Finding the Holy Grail (current)
>
> If you accidentally delete a project, you can undelete it:
>
>  bash$ tt undelete 1
>  bash$ tt ls
>  1: Spanish Inquisition
>  2: Finding the Holy Grail (current)
>
> It also offers meager help, listing available actions:
>
>  bash$ tt help
>
> or you can ask for help on a particular item:
>
>  bash$ tt help start
>
> Most commands have alternatives as listed in the detailed help so "remove", 
> "rm", "del", and "delete" all behave the same.  Case doesn't matter.
>
> There are a couple other options to control date formatting, to override the 
> database file, or to change the verbosity.  You can also force a database 
> init, which will delete your existing database of tasks, and start afresh.
>
> It's all pretty simple Python code, so if you want to tweak it, feel free. 
> Consider it in the public domain.  The code isn't overly elegant, as it 
> issues direct SQL queries instead of using some abstraction/ORM layer, but 
> none of the queries are anything too complex.  I threw it together in a 
> couple hours.
>
> Hope you find it helpful.  If you have questions, I'll try my best to answer 
> them.
>
> -tim
>
>
>
>
> _______________________________________________
> Blinux-list mailing list
> Blinux-list at redhat.com
> https://www.redhat.com/mailman/listinfo/blinux-list
>




More information about the Blinux-list mailing list