git.fiddlerwoaroof.com
README.md
d8b28a4b
 A little utility to manage a simple time-sheet file.
 
 The file-format is this:
 
 ```
 -- Someday YYYY-MM-DD
1b0fea02
    start@HH:MM[:SS][(+|-)NN(mins|hrs)][,HH:MM[:SS][(+|-)NN(mins|hrs)]]
d8b28a4b
    Client Name: This is a memo.	
 ```
 
1b0fea02
 Right now the parser is fairly fragile: it reads what it can and fails silently at the first 
d8b28a4b
 error.  Eventually there'll be better error-handling.
 
 ```
 % ./timesheet -h
 timesheet, common-lisp version 0:1
   -c --client                     boolean  Sort by client
   -r --reverse                    boolean  Reverse sort
   -s --status                     boolean  Print a summary of the hours worked and the prices
   -h --help                       boolean  show help
 ```
 
1b0fea02
 By default, it orders the log by dates.  With the `-r` option, it displays the dates in descending order:
 
d8b28a4b
 ```
 % ./timesheet -r sample-inputs/test.ts
 Thu, 2016/01/04  Client #2    5.00 hrs  Implement prototype and write presentation
 Thu, 2016/01/04  Client #1    9.00 hrs  Implement Facebook Connector
 Wed, 2016/01/03  Client #2    2.50 hrs  Discussed user requirements and produce specification.
 Wed, 2016/01/03  Client #1    6.00 hrs  Delivered prototype, reviewed prototype feedback.
 Tue, 2016/01/02  Client #1    8.00 hrs  Prototype for testing user experience.
 Mon, 2016/01/01  Client #1    8.00 hrs  Mockup of site layout
 ```
 
1b0fea02
 With `-c` it sorts by clients and then does a stable-sort by date:
 
d8b28a4b
 ```
 % ./timesheet -sc sample-inputs/test.ts
 Mon, 2016/01/01  Client #1    8.00 hrs  Mockup of site layout
 Tue, 2016/01/02  Client #1    8.00 hrs  Prototype for testing user experience.
 Wed, 2016/01/03  Client #1    6.00 hrs  Delivered prototype, reviewed prototype feedback.
 Thu, 2016/01/04  Client #1    9.00 hrs  Implement Facebook Connector
 Wed, 2016/01/03  Client #2    2.50 hrs  Discussed user requirements and produce specification.
 Thu, 2016/01/04  Client #2    5.00 hrs  Implement prototype and write presentation
 ------------------------------------------------------------------------------------------------------------------------
1b0fea02
                  Client #1:  31.00 hours @   XX.00 $/hr = $XXXX.00
                  Client #2:   7.50 hours @   XX.00 $/hr = $ XXX.00
                      Total:  38.50 hours @   XX.00 $/hr = $XXXX.00
d8b28a4b
 ```
 
 ```
 % ./timesheet -sr sample-inputs/test.ts
 Thu, 2016/01/04  Client #2    5.00 hrs  Implement prototype and write presentation
 Thu, 2016/01/04  Client #1    9.00 hrs  Implement Facebook Connector
 Wed, 2016/01/03  Client #2    2.50 hrs  Discussed user requirements and produce specification.
 Wed, 2016/01/03  Client #1    6.00 hrs  Delivered prototype, reviewed prototype feedback.
 Tue, 2016/01/02  Client #1    8.00 hrs  Prototype for testing user experience.
 Mon, 2016/01/01  Client #1    8.00 hrs  Mockup of site layout
 ------------------------------------------------------------------------------------------------------------------------
1b0fea02
                  Client #1:  31.00 hours @   XX.00 $/hr = $XXXX.00
                  Client #2:   7.50 hours @   XX.00 $/hr = $ XXX.00
                      Total:  38.50 hours @   XX.00 $/hr = $XXXX.00
d8b28a4b
 ```
 
1b0fea02
 `-c` and `-r` combine:
 
d8b28a4b
 ```
 % ./timesheet -scr sample-inputs/test.ts
 Thu, 2016/01/04  Client #2    5.00 hrs  Implement prototype and write presentation
 Wed, 2016/01/03  Client #2    2.50 hrs  Discussed user requirements and produce specification.
 Thu, 2016/01/04  Client #1    9.00 hrs  Implement Facebook Connector
 Wed, 2016/01/03  Client #1    6.00 hrs  Delivered prototype, reviewed prototype feedback.
 Tue, 2016/01/02  Client #1    8.00 hrs  Prototype for testing user experience.
 Mon, 2016/01/01  Client #1    8.00 hrs  Mockup of site layout
 ------------------------------------------------------------------------------------------------------------------------
1b0fea02
                  Client #1:  31.00 hours @   XX.00 $/hr = $XXXX.00
                  Client #2:   7.50 hours @   XX.00 $/hr = $ XXX.00
                      Total:  38.50 hours @   XX.00 $/hr = $XXXX.00
d8b28a4b
 ```