Basecamper - Command line time tracker for Basecamp

Basecamper is a command line interface to log and manage your times on your Basecamp. It uses and extends the Basecamp API Ruby wrapper. Perhaps in the future it will do more than time tracking. This time is not now.

Install ===

gem sources -a gems.github.com sudo gem install Klondike-basecamper

Usage ===

Configure the tracker with your Basecamp URL, login details, and whether the Basecamp uses SSL. This will take a while as it caches project information from your Basecamp. Example:

track configure example.clientsection.com username password true

Set a project as “current”, so any times logged are assumed to be meant for that project.

track project "Johnson Industries"
track project joh

Log a time by giving the duration, or by giving two times. You can optionally specify the project to log time to, which won’t change the default project.

track log 0.25 "Log message"
track log :15 "Log message" "Johnson Industries"
track log 2:30p 5:30pm "Log message"
track log 10:00 1:00 "Log message" joh

In the last case (10:00 to 1:00), the tracker will assume that the 2nd time
is later than the 1st one, and calculate it as 3 hours, not -9.

Log time by starting a timer. If you don’t specify a starting time, it’s assumed you’re starting now. You can optionally specify a project, which will change the default project.

track start
track start "Johnson Industries"
track start 3:15
track start 3:15 "Johnson Industries"

Stop the timer to log elapsed time. If you don’t specify an ending time, it’s assumed you’re stopping now.

track stop "Log message"
track stop 5:15pm "Log message"

Pause and unpause the timer.

track pause

Cancel all time tracking and reset counters to 0, if the timer is running or paused.

track cancel

List times logged that day, including totals:

track times

Delete a logged time from Basecamp with “undo”. If you don’t specify an ID, it’s assumed you want to delete the last logged time.

track undo
track undo 6861536

Set a variable, such as the minute increment to round times to, or any Basecamp authorization credentials.

track set rounding 15

See the list of available projects to track time against.

track projects

See whether the tracker is configured correctly, the current project, and if/when the timer was started or paused:

track status

See a general or command-specific help message:

track help
track help log

General ==

* Project names can be entered as starting fragments.  For example, if
  "Johnson Industries" was the only project beginning with "joh", you could
  reference it as "joh" (e.g. "track project joh").  If more than one
  project starts with a fragment, the first one that matches is chosen.

* Times:
  - Valid formats for times of day are:    10:00, 9:00pm, 23:30, 8, 1am, 10p
  - Invalid formats for times of day are:  1230, 1120pm, 22:00am

* When calculating elapsed time, minutes are rounded up to be integers, and 
  then rounded to the nearest 15 minute increment, by default.  So a 1-minute
  time will be logged as 15, 15 as 15, 16 as 30, etc.  Use the 'set' command
  to change the increment that times are rounded to.  Times logged using the
  'log' command will not be rounded.