commit
bd13dcdcdd
@ -166,7 +166,7 @@ def main():
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
def create_file_structures_and_config(args, extensions):
|
def create_file_structures_and_config(args, extensions_data):
|
||||||
path.get_or_create_dir(b'$XDG_DATA_DIR/mopidy')
|
path.get_or_create_dir(b'$XDG_DATA_DIR/mopidy')
|
||||||
path.get_or_create_dir(b'$XDG_CONFIG_DIR/mopidy')
|
path.get_or_create_dir(b'$XDG_CONFIG_DIR/mopidy')
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ def create_file_structures_and_config(args, extensions):
|
|||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
default = config_lib.format_initial(extensions)
|
default = config_lib.format_initial(extensions_data)
|
||||||
path.get_or_create_file(config_file, mkdir=False, content=default)
|
path.get_or_create_file(config_file, mkdir=False, content=default)
|
||||||
logger.info('Initialized %s with default config', config_file)
|
logger.info('Initialized %s with default config', config_file)
|
||||||
except IOError as error:
|
except IOError as error:
|
||||||
|
|||||||
@ -87,20 +87,23 @@ def format(config, ext_schemas, comments=None, display=True):
|
|||||||
return _format(config, comments or {}, schemas, display, False)
|
return _format(config, comments or {}, schemas, display, False)
|
||||||
|
|
||||||
|
|
||||||
def format_initial(extensions):
|
def format_initial(extensions_data):
|
||||||
config_dir = os.path.dirname(__file__)
|
config_dir = os.path.dirname(__file__)
|
||||||
defaults = [read(os.path.join(config_dir, 'default.conf'))]
|
defaults = [read(os.path.join(config_dir, 'default.conf'))]
|
||||||
defaults.extend(e.get_default_config() for e in extensions)
|
defaults.extend(d.extension.get_default_config() for d in extensions_data)
|
||||||
raw_config = _load([], defaults, [])
|
raw_config = _load([], defaults, [])
|
||||||
|
|
||||||
schemas = _schemas[:]
|
schemas = _schemas[:]
|
||||||
schemas.extend(e.get_config_schema() for e in extensions)
|
schemas.extend(d.extension.get_config_schema() for d in extensions_data)
|
||||||
|
|
||||||
config, errors = _validate(raw_config, schemas)
|
config, errors = _validate(raw_config, schemas)
|
||||||
|
|
||||||
versions = ['Mopidy %s' % versioning.get_version()]
|
versions = ['Mopidy %s' % versioning.get_version()]
|
||||||
for extension in sorted(extensions, key=lambda ext: ext.dist_name):
|
extensions_data = sorted(
|
||||||
versions.append('%s %s' % (extension.dist_name, extension.version))
|
extensions_data, key=lambda d: d.extension.dist_name)
|
||||||
|
for data in extensions_data:
|
||||||
|
versions.append('%s %s' % (
|
||||||
|
data.extension.dist_name, data.extension.version))
|
||||||
|
|
||||||
header = _INITIAL_HELP.strip() % {'versions': '\n# '.join(versions)}
|
header = _INITIAL_HELP.strip() % {'versions': '\n# '.join(versions)}
|
||||||
formatted_config = _format(
|
formatted_config = _format(
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import unittest
|
|||||||
|
|
||||||
import mock
|
import mock
|
||||||
|
|
||||||
from mopidy import config
|
from mopidy import config, ext
|
||||||
|
|
||||||
from tests import path_to_data_dir
|
from tests import path_to_data_dir
|
||||||
|
|
||||||
@ -292,3 +292,23 @@ class PostProcessorTest(unittest.TestCase):
|
|||||||
def test_conversion(self):
|
def test_conversion(self):
|
||||||
result = config._postprocess(PROCESSED_CONFIG)
|
result = config._postprocess(PROCESSED_CONFIG)
|
||||||
self.assertEqual(result, INPUT_CONFIG)
|
self.assertEqual(result, INPUT_CONFIG)
|
||||||
|
|
||||||
|
|
||||||
|
def test_format_initial():
|
||||||
|
extension = ext.Extension()
|
||||||
|
extension.ext_name = 'foo'
|
||||||
|
extension.get_default_config = lambda: None
|
||||||
|
extensions_data = [
|
||||||
|
ext.ExtensionData(
|
||||||
|
extension=extension,
|
||||||
|
entry_point=None,
|
||||||
|
config_schema=None,
|
||||||
|
config_defaults=None,
|
||||||
|
command=None,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
result = config.format_initial(extensions_data)
|
||||||
|
|
||||||
|
assert '# For further information' in result
|
||||||
|
assert '[foo]\n' in result
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user