diff --git a/i3pystatus/core/config.py b/i3pystatus/core/config.py deleted file mode 100644 index 3e4e7e9..0000000 --- a/i3pystatus/core/config.py +++ /dev/null @@ -1,80 +0,0 @@ -import os.path -import runpy -import sys -import contextlib - -SEARCHPATH = ( - "~/.i3pystatus.py", - "~/.i3/i3pystatus.py", - "~/.config/i3pystatus.py", - "$XDG_CONFIG_HOME/i3pystatus.py", - "/etc/i3pystatus.py", - "/etc/xdg/i3pystatus.py", - "$XDG_CONFIG_DIRS/i3pystatus.py", -) - - -class ConfigFinder: - - def __init__(self, searchpath=SEARCHPATH): - self.searchpath = searchpath - - @staticmethod - def expand(path): - return os.path.expandvars(os.path.expanduser(path)) - - @staticmethod - def exists(path): - return os.path.isfile(path) - - def find_config_file(self): - failed = [] - for path in map(self.expand, self.searchpath): - if self.exists(path): - return path - else: - failed.append(path) - - raise RuntimeError( - "Didn't find a config file, tried\n * {mods}".format(mods="\n * ".join(failed))) - - -class Config: - - def __init__(self, config_file=None): - self.finder = ConfigFinder() - self.config_file = config_file or self.finder.find_config_file() - - def run(self): - runpy.run_path(self.config_file, run_name="i3pystatus._config") - - def test(self): - @contextlib.contextmanager - def setup(): - import i3pystatus - - class TestStatus(i3pystatus.Status): - - def run(self): - self.modules.reverse() - self.call_start_hooks() - for module in self.modules: - sys.stdout.write( - "{module}: ".format(module=module.__name__)) - sys.stdout.flush() - test = module.test() - if test is not True: - print("\n\t", test) - continue - module.run() - output = module.output or {"full_text": "(no output)"} - print(output.get("full_text", "")) - - i3pystatus.Status = TestStatus - yield - i3pystatus.Status = i3pystatus.Status.__bases__[0] - - with setup(): - print( - "Using configuration file {file}\n".format(file=self.config_file)) - self.run()