[0] | 1 | #!/usr/bin/env python
|
---|
| 2 |
|
---|
[10] | 3 | import argparse
|
---|
[0] | 4 | from stamper import Stamper
|
---|
| 5 |
|
---|
| 6 |
|
---|
| 7 | if __name__ == '__main__':
|
---|
| 8 |
|
---|
[10] | 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')
|
---|
[22] | 17 | parser.add_argument('-s', '--sum', action="store_true",
|
---|
| 18 | help='Include sum of times')
|
---|
[23] | 19 | parser.add_argument('-g', '--graph', action="store_true",
|
---|
| 20 | help='Generate a SVG graph')
|
---|
[28] | 21 | parser.add_argument('-t', '--timeline', action="store_true",
|
---|
| 22 | help='Show a timeline of recorded times')
|
---|
[10] | 23 |
|
---|
| 24 | args = parser.parse_args()
|
---|
| 25 |
|
---|
[0] | 26 | s = Stamper()
|
---|
| 27 | s.load_stamps()
|
---|
[29] | 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
|
---|
[28] | 36 | if args.timeline:
|
---|
| 37 | s.timeline()
|
---|
[30] | 38 | elif args.graph:
|
---|
| 39 | s.graph_stamps(args.customer, args.filter)
|
---|
[28] | 40 | else:
|
---|
[30] | 41 | s.show_stamps(args.customer, args.filter, args.verbose, args.sum)
|
---|