diff --git a/mackup/applications/traktor.cfg b/mackup/applications/traktor.cfg new file mode 100644 index 000000000..1ef1bedd1 --- /dev/null +++ b/mackup/applications/traktor.cfg @@ -0,0 +1,8 @@ +[application] +name = Traktor + +[options] +enable_glob = true + +[configuration_files] +Documents/Native Instruments/Traktor *.*.*/Traktor Settings.tsi diff --git a/mackup/appsdb.py b/mackup/appsdb.py index 638ff40f4..5d1978aa0 100644 --- a/mackup/appsdb.py +++ b/mackup/appsdb.py @@ -4,6 +4,7 @@ The Applications Database provides an easy to use interface to load application data from the Mackup Database (files). """ +import glob import os try: @@ -52,7 +53,7 @@ def __init__(self): raise ValueError( "Unsupported absolute path: {}".format(path) ) - self.apps[app_name]["configuration_files"].add(path) + self._add_path(app_name, path, config) # Add the XDG configuration files to sync home = os.path.expanduser("~/") @@ -72,7 +73,7 @@ def __init__(self): ) path = os.path.join(xdg_config_home, path) path = path.replace(home, "") - (self.apps[app_name]["configuration_files"].add(path)) + self._add_path(app_name, path, config) @staticmethod def get_config_files(): @@ -168,3 +169,11 @@ def get_pretty_app_names(self): pretty_app_names.add(self.get_name(app_name)) return pretty_app_names + + def _add_path(self, app_name, path, config): + if config.getboolean("options", "enable_glob", fallback=False): + expanded_paths = glob.glob(path) + else: + expanded_paths = [path] + for expanded_path in expanded_paths: + self.apps[app_name]["configuration_files"].add(expanded_path)