# HG changeset patch # User Simon Cross # Date 1316211209 -7200 # Node ID d759f49c477d690e2e1949fda86ec80bdfd1add7 # Parent ab77047aca691e602c8193f14ccba4a57db52e78 Option for printing list of uncurated levels. diff -r ab77047aca69 -r d759f49c477d mamba/__main__.py --- 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() diff -r ab77047aca69 -r d759f49c477d mamba/constants.py --- 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 } diff -r ab77047aca69 -r d759f49c477d mamba/habitats/userlevelmenu.py --- 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) diff -r ab77047aca69 -r d759f49c477d mamba/options.py --- 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()