def main(): """ Take arguments and direct program """ parser = argparse.ArgumentParser(description="A MineOS Player Stats Database Report Generator" " (http://github.com/jelloeater/mineOSplayerStats)", version=__version__, epilog="Please specify mode") report_group = parser.add_argument_group('Modes') report_group.add_argument("-g", "--generate_report", help="Generate Weekly Report", action="store_true") report_group.add_argument("-s", "--report_scheduler", help="Automatically Generate Weekly Report", action="store_true") email_group = parser.add_argument_group('E-mail Config') email_group.add_argument("-e", "--configure_email_settings", help="Configure email alerts", action="store_true") email_group.add_argument("-r", "--remove_email_password_store", help="Removes password stored in system keyring", action="store_true") db_group = parser.add_argument_group('Database Config') db_group.add_argument("-b", "--configure_db_settings", help="Configure database settings", action="store_true") db_group.add_argument("-p", "--remove_db_password_store", help="Removes password stored in system keyring", action="store_true") parser.add_argument("-d", "--delay", action="store", type=int, default=60, help="Wait x second between checks (ex. 60)") parser.add_argument("--debug", action="store_true", help="Debug Mode Logging") args = parser.parse_args() if args.debug: logging.basicConfig(format="[%(asctime)s] [%(levelname)8s] --- %(message)s (%(filename)s:%(lineno)s)", level=logging.DEBUG) logging.debug(sys.path) logging.debug(args) logging.debug('Debug Mode Enabled') else: logging.basicConfig(filename=LOG_FILENAME, format="[%(asctime)s] [%(levelname)8s] --- %(message)s (%(filename)s:%(lineno)s)", level=logging.WARNING) mode = modes(sleep_delay=args.delay) # Create new mode object for flow, I'll buy that :) if len(sys.argv) == 1: # Displays help and lists servers (to help first time users) parser.print_help() sys.exit(1) if args.remove_db_password_store: db_controller.db_helper().clear_password_store() if args.configure_db_settings: db_controller.db_helper().configure() if args.remove_email_password_store: gmail().clear_password_store() if args.configure_email_settings: gmail().configure() # Magic starts here if args.generate_report: db_controller.db_helper().test_db_setup() gmail().test_login() mode.generate_report() if args.report_scheduler: db_controller.db_helper().test_db_setup() gmail().test_login() mode.report_scheduler()
def main(): """ Take arguments and direct program """ parser = argparse.ArgumentParser(description="A MineOS Player Stats Monitor" " (http://github.com/jelloeater/mineOSplayerStats)", version=__version__, epilog="Please specify mode (-s, -i or -m) to start monitoring") server_group = parser.add_argument_group('Single Server Mode') server_group.add_argument("-s", "--single", action="store", help="Single server watch mode") interactive_group = parser.add_argument_group('Interactive Mode') interactive_group.add_argument("-i", "--interactive", help="Interactive menu mode", action="store_true") multi_server_group = parser.add_argument_group('Multi Server Mode') multi_server_group.add_argument("-m", "--multi", help="Multi server watch mode", action="store_true") db_group = parser.add_argument_group('Database Settings') db_group.add_argument("-c", "--configure_db_settings", help="Configure database settings", action="store_true") db_group.add_argument("-r", "--remove_password_store", help="Removes password stored in system keyring", action="store_true") parser.add_argument("-d", "--delay", action="store", type=int, default=60, help="Wait x second between checks (ex. 60)") parser.add_argument('-b', dest='base_directory', default='/var/games/minecraft', help='Change MineOS Server Base Location (ex. /var/games/minecraft)') parser.add_argument('-o', dest='owner', default='mc', help='Sets the owner of the Minecraft servers (ex mc)') parser.add_argument("-l", "--list", action="store_true", help="List MineOS Servers") parser.add_argument("--debug", action="store_true", help="Debug Mode Logging") args = parser.parse_args() if args.debug: logging.basicConfig(format="[%(asctime)s] [%(levelname)8s] --- %(message)s (%(filename)s:%(lineno)s)", level=logging.DEBUG) logging.debug(sys.path) logging.debug(args) logging.debug('Debug Mode Enabled') else: logging.basicConfig(filename=LOG_FILENAME, format="[%(asctime)s] [%(levelname)8s] --- %(message)s (%(filename)s:%(lineno)s)", level=logging.WARNING) mode = modes(base_directory=args.base_directory, owner=args.owner, sleep_delay=args.delay) # Create new mode object for flow, I'll buy that :) if len(sys.argv) == 1: # Displays help and lists servers (to help first time users) parser.print_help() sys.exit(1) if args.list: mode.list_servers() if args.remove_password_store: db_controller.db_helper().clear_password_store() if args.configure_db_settings: db_controller.db_helper().configure() db_controller.db_helper().test_db_setup() # Magic starts here if args.interactive: mode.interactive() elif args.single: mode.single_server(args.single) # Needs server name to start elif args.multi: mode.multi_server()