changeset 366:d759f49c477d

Option for printing list of uncurated levels.
author Simon Cross <hodgestar@gmail.com>
date Sat, 17 Sep 2011 00:13:29 +0200
parents ab77047aca69
children 35a46716ffdd
files mamba/__main__.py mamba/constants.py mamba/habitats/userlevelmenu.py mamba/options.py
diffstat 4 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/__main__.py	Sat Sep 17 00:09:29 2011 +0200
+++ b/mamba/__main__.py	Sat Sep 17 00:13:29 2011 +0200
@@ -23,6 +23,11 @@
     if not check_args():
         sys.exit(1)
 
+    if options.list_uncurated:
+        api = UserLevelApi("uncurated")
+        api.print_levels()
+        sys.exit()
+
     SoundSystem(options.sound)
     pygame.display.init()
     pygame.font.init()
--- a/mamba/constants.py	Sat Sep 17 00:09:29 2011 +0200
+++ b/mamba/constants.py	Sat Sep 17 00:13:29 2011 +0200
@@ -40,6 +40,7 @@
     'sound': True,
     'level': None,
     'uncurated': None,
+    'list_uncurated': False,
     'edit': False,
     'save_location': None,  # Determined by a function in options
 }
--- a/mamba/habitats/userlevelmenu.py	Sat Sep 17 00:09:29 2011 +0200
+++ b/mamba/habitats/userlevelmenu.py	Sat Sep 17 00:13:29 2011 +0200
@@ -47,6 +47,14 @@
             self._populate_cache()
         return self.cache.keys()
 
+    def print_levels(self):
+        title = "%s levels:" % self.ctype.title()
+        print title
+        print "=" * len(title)
+        for name in self.list_levels():
+            print name
+        print "=" * len(title)
+
     def get_level(self, name):
         if name not in self.cache:
             self._populate_level(name)
--- a/mamba/options.py	Sat Sep 17 00:09:29 2011 +0200
+++ b/mamba/options.py	Sat Sep 17 00:13:29 2011 +0200
@@ -47,6 +47,9 @@
         parser.add_option("--uncurated", type="str", default=None,
                 dest="uncurated", help="Load uncurated level "
                                        "from the web by name.")
+        parser.add_option("--list-uncurated", action="store_true",
+                          default=False, dest="list_uncurated",
+                          help="List uncurated levels.")
 
     opts, _ = parser.parse_args(args)
 
@@ -56,6 +59,7 @@
     if options.debug:
         options.set_option('level', opts.level)
         options.set_option('uncurated', opts.uncurated)
+        options.set_option('list_uncurated', opts.list_uncurated)
         options.set_option('edit', opts.edit)
 
     options.finalize()