from os import getenv from signal import SIGTERM, signal from pidfile import delete_pidfile, pidfile_name, create_pidfile from os.path import exists from SignalRouter import SignalRouter from Bar import Bar from Module import Module from parse_config_file import get_bar_config_and_monitor_list def sigterm_handler(signal, frame): delete_pidfile(pidfile_name()) exit() def main(): if exists("./data/testing_config.yml"): config_file = "./data/testing_config.yml" else: config_file = str(getenv("HOME")) + "/.config/easyconf-lemonbar.yml" bar_config, monitor_list = get_bar_config_and_monitor_list(config_file) padding = bar_config["padding"] seperator = bar_config["seperator"] margin = bar_config["margin"] signal_router = SignalRouter() bar = Bar(seperator, margin) for monitor in monitor_list: bar.add_monitor(monitor) module_config_list = monitor_list[monitor]["modules"] for module_config in module_config_list.values(): module = Module(module_config, padding, bar) bar.add_module(monitor, module) module.start_thread() if module.signal != 0: signal_router.register_signal_thread(module.signal, module.ident) create_pidfile(pidfile_name()) signal(SIGTERM, sigterm_handler) if __name__ == "__main__": main()