def __init__(self): try: print(BANNER) # Parse settings files settings = Settings() # Parse command-line arguments arguments = ArgumentsParser(settings) # Create db if needed and initialize sqlalchemy session Base.metadata.create_all(engine) session = Session() # Create "default" mission if necessary mission = session.query(Mission).filter( Mission.name == 'default').first() if not mission: mission = Mission(name='default', comment='Default scope') session.add(mission) session.commit() # Controller controller = MainController(arguments, settings, session) controller.run() except KeyboardInterrupt: print() if Output.prompt_confirm('Are you sure you want to exit ?', default=False): logger.error('User aborted') sys.exit(0) except (SettingsException, AttackException) as e: logger.error(e) sys.exit(1) except (ValueError, ArgumentsException): print sys.exit(1) except Exception as e: print logger.error('Unexpected error occured: {0}'.format(str(e))) traceback.print_exc() sys.exit(1)