Index: bin/stamp2json
===================================================================
--- bin/stamp2json	(revision 11)
+++ bin/stamp2json	(revision 11)
@@ -0,0 +1,59 @@
+#!/usr/bin/env python
+
+import json
+from argparse import ArgumentParser
+from os.path import expanduser
+
+
+def args_cmd():
+    """Parse the command line arguments via argparse"""
+    parser = ArgumentParser(description='Convert tool from txt to json format')
+    parser.add_argument(
+        '--input', '-i', default=expanduser('~/.workstamps.txt'),
+        help='Input filename (default ~/.workstamps.txt')
+    parser.add_argument(
+        '--output', '-o', default=expanduser('~/.workstamps.json'),
+        help='Input filename (default: ~/.workstamps.json)')
+    return parser.parse_args()
+
+
+def itemify(line):
+    """Split a line, returning date and the rest of data"""
+    line = line.strip()
+    end_time = line[:16]
+    info = line[17:]
+    return(line[:16], line[17:])
+
+
+if __name__ == '__main__':
+    args = args_cmd()
+
+    stamps = []
+
+    with open(args.input, 'r') as infile:
+
+        for line in infile:
+            time, info = itemify(line)
+
+            if info == 'start':
+                customer = None
+                action = None
+                start_time = time
+                end_time = None
+
+            elif time == 'restarttotals':
+                continue
+
+            else:
+                customer = info.split(' ', 1)[0]
+                action = info.split(' ', 1)[1].lstrip('- ')
+                end_time = time
+
+            stamps.append({
+                'start': start_time,
+                'end': end_time,
+                'customer': customer,
+                'action': action,
+            })
+    with open(args.output, 'w') as stamps_file:
+        json.dump(stamps, stamps_file, indent=4)
Index: bin/stamps
===================================================================
--- bin/stamps	(revision 10)
+++ bin/stamps	(revision 3)
@@ -1,22 +1,52 @@
 #!/usr/bin/env python
 
-import argparse
+import sys
 from stamper import Stamper
+
+
+def usage(name):
+    msg = """
+    Usage:
+
+    To gather information of recorded times: %(name)s
+
+    Recorded times for a given customer: %(name)s customer
+
+    Detailed times for a given customer: %(name)s customer details
+    """ % {'name': name}
+    print(msg)
 
 
 if __name__ == '__main__':
 
-    parser = argparse.ArgumentParser(
-        description='stamps: show recorded times information')
-    parser.add_argument('customer', action="store", nargs='?',
-                        help='Show times only for this customer')
-    parser.add_argument('filter', action="store", nargs='?',
-                        help='Filter the times by date range')
-    parser.add_argument('-v', '--verbose', action="store_true",
-                        help='Include detailed times information')
-
-    args = parser.parse_args()
-
     s = Stamper()
     s.load_stamps()
-    s.show_stamps(args.customer, args.filter, args.verbose)
+
+    if len(sys.argv) == 1:
+        totals = s.totals()
+        print('Total times for all customers:')
+        for t in totals:
+            print(' -> %(customer)s: %(total)s' % {'customer': t,
+                                                   'total': totals[t]})
+    elif len(sys.argv) == 2:
+        if sys.argv[1] in s.customers():
+            print('Total time for %(customer)s: %(total)s' % {
+                'customer': sys.argv[1],
+                'total': s.total_by_customer(sys.argv[1])
+                })
+
+    elif len(sys.argv) == 3:
+        if sys.argv[1] in s.customers():
+            print('Detailed time for %(customer)s' % {
+                'customer': sys.argv[1],
+                })
+            details, totals = s.details_by_customer(sys.argv[1])
+            for day in details:
+                print('------ %(day)s ------' % {'day': day})
+                for line in details[day]:
+                    print(line)
+                print(' Total: %(total)s' % {'total': totals[day]})
+
+    else:
+        usage(sys.argv[0])
+        sys.exit(1)
