1
0
mirror of https://github.com/deadc0de6/dotdrop.git synced 2026-02-10 23:44:16 +00:00

Adding globbing functionality for import_configs

This commit is contained in:
Davide Laezza
2019-04-22 15:21:23 +02:00
parent 9925ec3928
commit 2949feaefd
2 changed files with 8 additions and 2 deletions

View File

@@ -6,8 +6,10 @@ yaml config file manager
""" """
import inspect import inspect
import itertools
import os import os
import shlex import shlex
from glob import iglob
import yaml import yaml
@@ -283,6 +285,10 @@ class Cfg:
# parse external profiles # parse external profiles
try: try:
ext_configs = self.lnk_settings[self.key_import_configs] or () ext_configs = self.lnk_settings[self.key_import_configs] or ()
ext_configs = itertools.chain.from_iterable(
iglob(self._abs_path(config), recursive=True)
for config in ext_configs
)
for config in ext_configs: for config in ext_configs:
self._merge_cfg(config) self._merge_cfg(config)
except KeyError: except KeyError:
@@ -469,7 +475,7 @@ class Cfg:
def _merge_cfg(self, config_path): def _merge_cfg(self, config_path):
# Parsing external config file # Parsing external config file
try: try:
ext_config = Cfg(self._abs_path(config_path)) ext_config = Cfg(config_path)
except ValueError: except ValueError:
raise ValueError( raise ValueError(
'external config file not found: {}'.format(config_path)) 'external config file not found: {}'.format(config_path))

View File

@@ -305,7 +305,7 @@ profiles:
# create the importing base config file # create the importing base config file
importing_path = create_fake_config(tmp, importing_path = create_fake_config(tmp,
configname=self.CONFIG_NAME, configname=self.CONFIG_NAME,
import_configs=(imported_path,), import_configs=('config-*.yaml',),
**importing['config']) **importing['config'])
# edit the imported config # edit the imported config