]> git.armaanb.net Git - lightcards.git/blobdiff - lightcards/runner.py
Fix side output in bar and header
[lightcards.git] / lightcards / runner.py
index f9f1abd9437d5f430bd7e6da721fc0562beb2b76..e0af7d9e24e00746ca683e49e0537aac67e98f57 100644 (file)
@@ -2,14 +2,14 @@
 # Armaan Bhojwani 2021
 
 import argparse
-from curses import wrapper
+import curses
 import os
 import pkg_resources
 from random import shuffle
 import sys
 
 from . import parse, progress
-from .display import Display
+from .display import Display, CursesError
 from .deck import Status
 
 
@@ -18,6 +18,15 @@ def parse_args():
     parser = argparse.ArgumentParser(
         description="Terminal flashcards from Markdown"
     )
+    parser.add_argument(
+        "-V",
+        "--view",
+        metavar="view",
+        type=int,
+        choices=range(1, 4),
+        default=1,
+        help="specify which view to start in (default = 1)",
+    )
     parser.add_argument("inp", metavar="input file", type=str, nargs=1)
     parser.add_argument(
         "-a",
@@ -25,9 +34,6 @@ def parse_args():
         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",
@@ -71,14 +77,13 @@ def show(args, stack, headers):
         stack.sort(key=lambda x: x.front)
     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]
 
     # Send to display
-    win = Display(stack, headers, idx)
-    wrapper(win.run)
+    win = Display(stack, headers, idx, args.view)
+    try:
+        curses.wrapper(win.run)
+    except curses.error as e:
+        raise CursesError() from e
 
 
 def reparse():
@@ -94,6 +99,7 @@ def get_orig():
 
 
 def main(args=sys.argv):
+    sys.tracebacklimit = 0
     args = parse_args()
     global headers, stack
     (headers, stack) = parse.parse_html(parse.md2html(args.inp[0]))