Esempio n. 1
0
    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)