#!/usr/bin/python3 import configparser import core import xml class PyWhoisD(): """Main class. It reads the configuration options and starts the server""" def __init__(self): self.config = configparser.ConfigParser() self.config.read('examples/pywhoisd.conf') self.data = None self.daemon = None # What kind of storage are we using? def config_data(self): """Config data sources. Only XML is supported. """ mode = self.config['Storage']['mode'] if mode == 'xml': self.data = xml.DataXML(self.config) def config_daemon(self): """Config common information source for all configured servers""" self.config_data() self.daemon = core.Daemon(self.data) def web(self): """Returns true if web server is enabled""" return self.config['Servers']['web'] == 'yes' def classic(self): """Returns true if web server is enabled""" self.config['Servers']['classic'] == 'yes' def config_servers(self): """Sets up server configuration from config files""" if self.classic(): self.classic_server = core.ClassicServer(self.config, self.daemon) if self.web(): self.web_server = core.WebServer(self.config, self.daemon) def start_servers(self): """Start configured servers""" self.config_servers() if self.classic(): self.classic_server.start() if self.web(): self.web_server.start() def main(self): self.config_daemon() self.start_servers() if __name__ == "__main__": pwd = PyWhoisD() pwd.main()