#!/usr/bin/env python from twisted.internet import reactor from twisted.application import service from twisted.python import log, usage import ConfigParser import pymeds import os.path import sys defconfigfile = 'pymeds.ini' class ConfigFile(pymeds.Options): optParameters = [ [ 'config', 'c', defconfigfile, 'INI style config file', ], ] if __name__ == '__main__': config = ConfigFile() try: config.checkpath = False config.parseOptions() print `config` if os.path.exists(config['config']): print 'foo' scp = ConfigParser.SafeConfigParser() scp.read(config['config']) config.update(scp.items('pymeds')) # Double check config config.checkpath = True config.postOptions() elif config['config'] != defconfigfile: print 'bar' raise usage.UsageError( 'config file %s does not exist' % config['config']) except usage.UsageError, errortext: print '%s: %s' % (sys.argv[0], errortext) print '%s: Try --help for usage details.' % sys.argv[0] sys.exit(1) log.startLogging(sys.stdout) ser = pymeds.makeService(config) ser.startService() reactor.addSystemEventTrigger('before', 'shutdown', service.IService(ser).stopService) reactor.run()