cli: Add the --tags option to list tags on the stack
authorW. Trevor King <wking@tremily.us>
Wed, 6 Feb 2013 14:59:11 +0000 (09:59 -0500)
committerW. Trevor King <wking@tremily.us>
Wed, 6 Feb 2013 14:59:11 +0000 (09:59 -0500)
quizzer/cli.py

index 4df0b1565337f927bf62af5d7583d0a1fa4642b0..e40332f5ffd130cf230d6fe486969a83858849e6 100644 (file)
@@ -41,6 +41,9 @@ def main():
     parser.add_argument(
         '-t', '--tag', action='append',
         help='limit original questions to those matching at least one tag')
+    parser.add_argument(
+        '--tags', action='store_const', const=True, default=False,
+        help='instead of running the quiz, print a list of tags on the stack')
     parser.add_argument(
         'quiz', metavar='QUIZ',
         help='path to a quiz file')
@@ -60,6 +63,13 @@ def main():
         stack = [question for question in quiz]
     if args.tag:
         stack = [q for q in stack if q.tags.intersection(args.tag)]
+    if args.tags:
+        tags = set()
+        for q in stack:
+            tags.update(q.tags)
+        for tag in sorted(tags):
+            print(tag)
+        return
     ui = _cli.CommandLineInterface(quiz=quiz, answers=answers, stack=stack)
     ui.run()
     ui.answers.save()