| 1 | #!/usr/bin/env python
 | 
|---|
| 2 | 
 | 
|---|
| 3 | import argparse
 | 
|---|
| 4 | from stamper import Stamper
 | 
|---|
| 5 | 
 | 
|---|
| 6 | 
 | 
|---|
| 7 | if __name__ == '__main__':
 | 
|---|
| 8 | 
 | 
|---|
| 9 |     parser = argparse.ArgumentParser(
 | 
|---|
| 10 |         description='stamps: show recorded times information')
 | 
|---|
| 11 |     parser.add_argument('customer', action="store", nargs='?',
 | 
|---|
| 12 |                         help='Show times only for this customer')
 | 
|---|
| 13 |     parser.add_argument('filter', action="store", nargs='?',
 | 
|---|
| 14 |                         help='Filter the times by date range')
 | 
|---|
| 15 |     parser.add_argument('-v', '--verbose', action="store_true",
 | 
|---|
| 16 |                         help='Include detailed times information')
 | 
|---|
| 17 |     parser.add_argument('-s', '--sum', action="store_true",
 | 
|---|
| 18 |                         help='Include sum of times')
 | 
|---|
| 19 |     parser.add_argument('-g', '--graph', action="store_true",
 | 
|---|
| 20 |                         help='Generate a SVG graph')
 | 
|---|
| 21 |     parser.add_argument('-t', '--timeline', action="store_true",
 | 
|---|
| 22 |                         help='Show a timeline of recorded times')
 | 
|---|
| 23 | 
 | 
|---|
| 24 |     args = parser.parse_args()
 | 
|---|
| 25 | 
 | 
|---|
| 26 |     s = Stamper()
 | 
|---|
| 27 |     s.load_stamps()
 | 
|---|
| 28 | 
 | 
|---|
| 29 |     # Set proper arguments if they have passed a date-based filter without
 | 
|---|
| 30 |     # a customer
 | 
|---|
| 31 |     if args.customer not in s.customers and not args.filter:
 | 
|---|
| 32 |         args.filter = args.customer
 | 
|---|
| 33 |         args.customer = None
 | 
|---|
| 34 | 
 | 
|---|
| 35 |     # Call the proper methods, based on the given parameters
 | 
|---|
| 36 |     if args.timeline:
 | 
|---|
| 37 |         s.timeline()
 | 
|---|
| 38 |     elif args.graph:
 | 
|---|
| 39 |         s.graph_stamps(args.customer, args.filter)
 | 
|---|
| 40 |     else:
 | 
|---|
| 41 |         s.show_stamps(args.customer, args.filter, args.verbose, args.sum)
 | 
|---|