Delete config module #27
This commit is contained in:
parent
657cc87429
commit
6d9494acff
@ -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()
|
|
Loading…
Reference in New Issue
Block a user