Read interactive settings optional by adding --interactive option

This commit is contained in:
Johannes Knutsen 2011-06-09 20:03:02 +02:00
parent 8d240ea686
commit efa38d2449
3 changed files with 10 additions and 5 deletions

View File

@ -30,7 +30,7 @@ logger = logging.getLogger('mopidy.core')
def main():
options = parse_options()
setup_logging(options.verbosity_level, options.save_debug_log)
setup_settings()
setup_settings(options.interactive)
setup_gobject_loop()
setup_gstreamer()
setup_mixer()
@ -49,6 +49,9 @@ def parse_options():
parser.add_option('--help-gst',
action='store_true', dest='help_gst',
help='show GStreamer help options')
parser.add_option('-i', '--interactive',
action='store_true', dest='interactive',
help='ask interactively for required settings which is missing')
parser.add_option('-q', '--quiet',
action='store_const', const=0, dest='verbosity_level',
help='less output (warning level)')
@ -63,11 +66,11 @@ def parse_options():
help='list current settings')
return parser.parse_args(args=mopidy_args)[0]
def setup_settings():
def setup_settings(interactive):
get_or_create_folder('~/.mopidy/')
get_or_create_file('~/.mopidy/settings.py')
try:
settings.validate()
settings.validate(interactive)
except SettingsError, e:
logger.error(e.message)
sys.exit(1)

View File

@ -17,7 +17,6 @@ class SettingsProxy(object):
self.default = self._get_settings_dict_from_module(
default_settings_module)
self.local = self._get_local_settings()
self._read_missing_settings_from_stdin(self.default, self.local)
self.runtime = {}
def _read_missing_settings_from_stdin(self, default, local):
@ -79,7 +78,9 @@ class SettingsProxy(object):
else:
super(SettingsProxy, self).__setattr__(attr, value)
def validate(self):
def validate(self, interactive):
if interactive:
self._read_missing_settings_from_stdin(self.default, self.local)
if self.get_errors():
logger.error(u'Settings validation errors: %s',
indent(self.get_errors_as_string()))

View File

@ -14,6 +14,7 @@ class HelpTest(unittest.TestCase):
self.assert_('--version' in output)
self.assert_('--help' in output)
self.assert_('--help-gst' in output)
self.assert_('--interactive' in output)
self.assert_('--quiet' in output)
self.assert_('--verbose' in output)
self.assert_('--save-debug-log' in output)