diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core.py | 3 | ||||
-rw-r--r-- | src/plugin_manager.py | 16 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/core.py b/src/core.py index 719d0f56..b2f5a398 100644 --- a/src/core.py +++ b/src/core.py @@ -2032,6 +2032,9 @@ class Core(object): elif option == 'plugins_dir': path = os.path.expanduser(value) self.plugin_manager.on_plugins_dir_change(path) + elif option == 'plugins_conf_dir': + path = os.path.expanduser(value) + self.plugin_manager.on_plugins_conf_dir_change(path) self.call_for_resize() self.information(info, "Info") diff --git a/src/plugin_manager.py b/src/plugin_manager.py index 5f848ec2..a8c651e9 100644 --- a/src/plugin_manager.py +++ b/src/plugin_manager.py @@ -25,10 +25,13 @@ plugins_dir = plugins_dir or\ 'poezio', 'plugins') plugins_dir = os.path.expanduser(plugins_dir) -config_home = os.environ.get("XDG_CONFIG_HOME") -if not config_home: - config_home = os.path.join(os.environ.get('HOME'), '.config') -plugins_conf_dir = os.path.join(config_home, 'poezio', 'plugins') +plugins_conf_dir = config.get('plugins_conf_dir', '') +if not plugins_conf_dir: + config_home = os.environ.get('XDG_CONFIG_HOME') + if not config_home: + config_home = os.path.join(os.environ.get('HOME'), '.config') + plugins_conf_dir = os.path.join(config_home, 'poezio', 'plugins') +plugins_conf_dir = os.path.expanduser(plugins_conf_dir) try: os.makedirs(plugins_dir) @@ -39,6 +42,7 @@ try: os.makedirs(plugins_conf_dir) except OSError: pass + default_plugin_path = path.join(path.dirname(path.dirname(__file__)), 'plugins') sys.path.append(default_plugin_path) @@ -283,3 +287,7 @@ class PluginManager(object): sys.path.remove(plugins_dir) sys.path.append(new_value) plugins_dir = new_value + + def on_plugins_conf_dir_change(self, new_value): + global plugins_conf_dir + plugins_conf_dir = new_value |