Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ericgj/trackd

Command line time tracking with Thin/Sinatra daemon
https://github.com/ericgj/trackd

Last synced: 9 days ago
JSON representation

Command line time tracking with Thin/Sinatra daemon

Awesome Lists containing this project

README

        

# trackd

A rewrite of the command-line ReinH-track (voxdolo/track)
as a skinny daemon + command-line client.

## Usage

# start server daemon
trackd -d start

# start time => POST /1/projects/my-project/logs?task=config%20dbase
track start my-project config dbase

# or simply
track my-project config dbase

# stop time on current => PUT /1/current/logs
track stop

# stop time with message => PUT /1/current/logs?message=I%20did%20some%20work
track stop "I did some work"

# restart last => POST /1/last/logs
track restart

# print report of times by project and task => GET /1/projects
track cat

# print summary report by project => GET /1/status
track status

# print summary report for project by task => GET /1/projects/my-project/status
track status my-project

# print summary report by project and task => GET /1/projects/my-project/status?task=config%20dbase
track status my-project config dbase

# add time to named task => PUT /1/projects/my-project/logs?task=config%20dbase&time=30
track add 00:30 my-project config dbase

# subtract time from last => PUT /1/last/logs?time=-60
track sub 01:00

# add shortcut
track shortcut add mp my-project

## REST API
(v1 draft - not fully implemented)

Command Verb URL Params Redirect to

start x y POST /1/projects/x/logs task=y /1/logs/:id (1)

restart POST /1/last/logs - /1/logs/:id

stop PUT /1/current/logs - /1/logs/:id

stop m PUT /1/current/logs/?message=m - /1/logs/:id

add t x y PUT /1/projects/x/logs task=y&time=t /1/logs/:id

add t PUT /1/last/logs time=t /1/logs/:id

sub t x y PUT /1/projects/x/logs task=y&time=-t /1/logs/:id

sub t PUT /1/last/logs time=-t /1/logs/:id

cat GET /1/logs (2) - -

status GET /1/status (3) - -

status x GET /1/projects/x/status (4) - -

status x y GET /1/projects/x/status (5) task=y -

All messages are in JSON format.

(1) log message:

id:
task :
started_at :

project-logs message -- not currently used, GET /1/projects

-
name :
logs :
-
task :
started_at :

server_uptime :
total_duration :
current_log:
id:
task :
started_at :

name :
total_duration :
tasks :
-
task :
last_started_at :