# -*- coding: utf-8 -*- import sys import syslog import getopt from settingsd import const from settingsd import validators from settingsd import application from settingsd import daemon ##### Private methods ##### def help() : print ( "Usage: %s [options]\n" "Options:\n" "\t-h, --help -- Print this text\n" "\t-v, --version -- Print version and license info\n" "\t--log-level=<0|1|2> -- Log level, replace value from config\n" "\t--use-syslog=<yes|no> -- Force enable or disable useage of syslog\n" "\t--bus-type=<system|session> -- Use system or session bus, replace value from config\n" "\t-d, --daemon -- Run application as daemon, by default using interactive mode\n" "\t-k, --kill -- Kill daemon process" % (const.MY_NAME) ) def version() : print "%s version %s" % (const.MY_NAME, const.VERSION) ##### Main ###### if __name__ == "__main__" : log_level = None use_syslog_flag = None bus_type = None daemon_mode_flag = False try : (opts_list, args_list) = getopt.getopt(sys.argv[1:], "hdk", ( "help", "version", "log-level=", "use-syslog=", "bus-type=", "daemon", "kill" )) for (opts_list_item, args_list_item) in opts_list : if opts_list_item in ("-h", "--help") : help() sys.exit(0) elif opts_list_item in ("-v", "--version") : version() sys.exit(0) elif opts_list_item in ("--log-level") : try : log_level = validators.validRange(int(args_list_item), const.ALL_LOG_LEVELS_LIST) except Exception, err1 : print "Incorrect option \"%s\": %s" % (opts_list_item, str(err1)) sys.exit(1) elif opts_list_item in ("--use-syslog") : try : use_syslog_flag = validators.validBool(args_list_item) except Exception, err1 : print "Incorrect option \"%s\": %s" % (opts_list_item, str(err1)) sys.exit(1) elif opts_list_item in ("--bus-type") : try : bus_type = validators.validRange(args_list_item, const.ALL_BUS_TYPES_LIST) except Exception, err1 : print "Incorrect option \"%s\": %s" % (opts_list_item, str(err1)) sys.exit(1) elif opts_list_item in ("-d", "--daemon") : daemon_mode_flag = True elif opts_list_item in ("-k", "--kill") : try : daemon.killDaemon() sys.exit(0) except Exception, err1 : print "Daemon kill error: %s" % (str(err1)) sys.exit(1) else : print "Unknown option \"%s\"" % (opts_list_item) except Exception, err1 : print "Bad command line options: %s" % (str(err1)) ##### app = application.Application(log_level, use_syslog_flag, bus_type, daemon_mode_flag) app.run()