]> git.armaanb.net Git - lightcards.git/blobdiff - lightcards/lightcards.py
Update bar/sidebar layout
[lightcards.git] / lightcards / lightcards.py
index ea5355e39c90754aa0253894932a7757b5626f6f..ed1916d371ae9d833af41435772c5ed2680c8a70 100644 (file)
@@ -19,12 +19,16 @@ def parse_args():
                         metavar="input file",
                         type=str,
                         nargs=1)
+    parser.add_argument("-a", "--alphabetize",
+                        action='store_true',
+                        help="alphabetize card order")
     parser.add_argument("-f", "--flip",
                         action='store_true',
                         help="show second column first")
     parser.add_argument("-p", "--purge",
                         action='store_true',
                         help="don't check cached info before starting")
+    # TODO: don't require input file when using  -P
     parser.add_argument("-P", "--purge-all",
                         action='store_true',
                         help="don't check cached info before starting")
@@ -42,37 +46,35 @@ def parse_args():
 
 def show(args, stack, headers):
     """
-    Manipulate deck according to passed arguments, and send it to the display
-    functions
+    Get objects from cache, manipulate deck according to passed arguments, and
+    send it to the display functions
     """
+    # Purge caches if asked
     if args.purge:
         progress.purge(stack)
     if args.purge_all:
         progress.purge_all()
 
-    ida = progress.dive("status", stack)
-    if ida and not args.purge:
-        idx = ida
+    # Check for caches
+    ida = progress.dive(stack)
+    if ida:
+        (idx, stack, headers) = ida
     else:
         idx = Status()
 
-    stackb = progress.dive("stack", stack)
-    if stackb and not args.purge:
-        stack = stackb
-
-    headerb = progress.dive("headers", stack)
-    if headerb and not args.purge:
-        headers = headerb
-
+    # Manipulate deck
+    if args.shuffle:
+        shuffle(stack)
+    if args.alphabetize:
+        stack.sort()
+    if args.reverse:
+        stack.reverse()
     if args.flip:
         for x in stack:
             x[0], x[1] = x[1], x[0]
         headers[0], headers[1] = headers[1], headers[0]
-    if args.shuffle:
-        shuffle(stack)
-    elif args.reverse:
-        stack.reverse()
 
+    # Send to display
     win = Display(stack, headers, idx)
     wrapper(win.run)