diff --git a/i3pystatus/__init__.py b/i3pystatus/__init__.py index 1d3630f..4206eca 100644 --- a/i3pystatus/__init__.py +++ b/i3pystatus/__init__.py @@ -1,11 +1,12 @@ #!/usr/bin/env python import sys +import argparse -from .core import Status -from .core.modules import Module, IntervalModule -from .core.settings import SettingsBase -from .core.config import Config +from i3pystatus.core import Status +from i3pystatus.core.modules import Module, IntervalModule +from i3pystatus.core.settings import SettingsBase +from i3pystatus.core.config import Config __all__ = [ "SettingsBase", @@ -14,8 +15,13 @@ __all__ = [ ] def main(): - config = Config() - if len(sys.argv) == 2 and sys.argv[1] == "test": + parser = argparse.ArgumentParser(description='A replacement for i3status') + parser.add_argument("-c", "--config", action="store", help="Config file") + parser.add_argument("-t", "--test", action="store_true", help="Test modules") + args = parser.parse_args() + + config = Config(config_file=args.config) + if args.test: config.test() else: config.run() diff --git a/i3pystatus/core/config.py b/i3pystatus/core/config.py index 13cd279..f2326dd 100644 --- a/i3pystatus/core/config.py +++ b/i3pystatus/core/config.py @@ -39,9 +39,9 @@ class ConfigFinder: raise RuntimeError("Didn't find a config file, tried\n * {mods}".format(mods="\n * ".join(failed))) class Config: - def __init__(self): + def __init__(self, config_file=None): self.finder = ConfigFinder() - self.config_file = self.finder.find_config_file() + self.config_file = config_file or self.finder.find_config_file() def run(self): runpy.run_path(self.config_file, run_name="i3pystatus._config") diff --git a/i3pystatus/core/modules.py b/i3pystatus/core/modules.py index a2f1efe..97f50fc 100644 --- a/i3pystatus/core/modules.py +++ b/i3pystatus/core/modules.py @@ -30,6 +30,9 @@ class Module(SettingsBase): """ return True + def run(self): + pass + def on_click(self, button): if button == 1: # Left mouse button self.on_leftclick()