def start_app(): """ Starts the main event loop and launches the main window. """ # Ignore the signals since we handle them in the subprocesses # signal.signal(signal.SIGINT, signal.SIG_IGN) # Parse arguments and store them opts = leap_argparse.get_options() do_display_version(opts) options = { 'start_hidden': opts.start_hidden, 'debug': opts.debug, 'log_file': opts.log_file, } flags.STANDALONE = opts.standalone flags.OFFLINE = opts.offline flags.MAIL_LOGFILE = opts.mail_log_file flags.APP_VERSION_CHECK = opts.app_version_check flags.API_VERSION_CHECK = opts.api_version_check flags.OPENVPN_VERBOSITY = opts.openvpn_verb flags.SKIP_WIZARD_CHECKS = opts.skip_wizard_checks flags.CA_CERT_FILE = opts.ca_cert_file replace_stdout = True if opts.repair or opts.import_maildir: # We don't want too much clutter on the comand mode # this could be more generic with a Command class. replace_stdout = False logger = create_logger(opts.debug, opts.log_file, replace_stdout) # ok, we got logging in place, we can satisfy mail plumbing requests # and show logs there. it normally will exit there if we got that path. do_mail_plumbing(opts) try: event_server.ensure_server(event_server.SERVER_PORT) except Exception as e: # We don't even have logger configured in here print "Could not ensure server: %r" % (e,) PLAY_NICE = os.environ.get("LEAP_NICE") if PLAY_NICE and PLAY_NICE.isdigit(): nice = os.nice(int(PLAY_NICE)) logger.info("Setting NICE: %s" % nice) # TODO move to a different module: commands? if not we_are_the_one_and_only(): # Bitmask is already running logger.warning("Tried to launch more than one instance " "of Bitmask. Raising the existing " "one instead.") sys.exit(1) check_requirements() logger.info('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') logger.info('Bitmask version %s', VERSION) logger.info('leap.mail version %s', MAIL_VERSION) logger.info('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') logger.info('Starting app') generate_certificates() flags_dict = flags_to_dict() backend = lambda: run_backend(opts.danger, flags_dict) backend_process = multiprocessing.Process(target=backend, name='Backend') backend_process.daemon = True backend_process.start() run_frontend(options, flags_dict)
def start_app(): """ Starts the main event loop and launches the main window. """ # Ignore the signals since we handle them in the subprocesses # signal.signal(signal.SIGINT, signal.SIG_IGN) # Parse arguments and store them opts = leap_argparse.get_options() do_display_version(opts) options = { 'start_hidden': opts.start_hidden, 'debug': opts.debug, 'log_file': opts.log_file, } flags.STANDALONE = opts.standalone # XXX Disabled right now since it's not tested after login refactor # flags.OFFLINE = opts.offline flags.OFFLINE = False flags.MAIL_LOGFILE = opts.mail_log_file flags.APP_VERSION_CHECK = opts.app_version_check flags.API_VERSION_CHECK = opts.api_version_check flags.OPENVPN_VERBOSITY = opts.openvpn_verb flags.SKIP_WIZARD_CHECKS = opts.skip_wizard_checks flags.CA_CERT_FILE = opts.ca_cert_file replace_stdout = True if opts.repair or opts.import_maildir: # We don't want too much clutter on the comand mode # this could be more generic with a Command class. replace_stdout = False logger = create_logger(opts.debug, opts.log_file, replace_stdout) # ok, we got logging in place, we can satisfy mail plumbing requests # and show logs there. it normally will exit there if we got that path. do_mail_plumbing(opts) try: event_server.ensure_server(event_server.SERVER_PORT) except Exception as e: # We don't even have logger configured in here print "Could not ensure server: %r" % (e, ) PLAY_NICE = os.environ.get("LEAP_NICE") if PLAY_NICE and PLAY_NICE.isdigit(): nice = os.nice(int(PLAY_NICE)) logger.info("Setting NICE: %s" % nice) # TODO move to a different module: commands? if not we_are_the_one_and_only(): # Bitmask is already running logger.warning("Tried to launch more than one instance " "of Bitmask. Raising the existing " "one instead.") sys.exit(1) check_requirements() logger.info('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') logger.info('Bitmask version %s', VERSION) logger.info('leap.mail version %s', MAIL_VERSION) logger.info('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') logger.info('Starting app') backend_running = BackendProxy().check_online() logger.debug("Backend online: {0}".format(backend_running)) flags_dict = flags_to_dict() backend_pid = None if not backend_running: frontend_pid = os.getpid() backend = lambda: run_backend(opts.danger, flags_dict, frontend_pid) backend_process = multiprocessing.Process(target=backend, name='Backend') # we don't set the 'daemon mode' since we need to start child processes # in the backend # backend_process.daemon = True backend_process.start() backend_pid = backend_process.pid run_frontend(options, flags_dict, backend_pid=backend_pid)
def start_app(): """ Starts the main event loop and launches the main window. """ # Ignore the signals since we handle them in the subprocesses # signal.signal(signal.SIGINT, signal.SIG_IGN) # Parse arguments and store them opts = leap_argparse.get_options() do_display_version(opts) options = { 'start_hidden': opts.start_hidden, 'debug': opts.debug, } flags.STANDALONE = opts.standalone flags.OFFLINE = opts.offline flags.MAIL_LOGFILE = opts.mail_log_file flags.APP_VERSION_CHECK = opts.app_version_check flags.API_VERSION_CHECK = opts.api_version_check flags.OPENVPN_VERBOSITY = opts.openvpn_verb flags.SKIP_WIZARD_CHECKS = opts.skip_wizard_checks flags.CA_CERT_FILE = opts.ca_cert_file flags.DEBUG = opts.debug common_flags.STANDALONE = flags.STANDALONE logger = get_logger(perform_rollover=True) # NOTE: since we are not using this right now, the code that replaces the # stdout needs to be reviewed when we enable this again # replace_stdout = True # XXX mail repair commands disabled for now # if opts.repair or opts.import_maildir: # We don't want too much clutter on the comand mode # this could be more generic with a Command class. # replace_stdout = False # ok, we got logging in place, we can satisfy mail plumbing requests # and show logs there. it normally will exit there if we got that path. # XXX mail repair commands disabled for now # do_mail_plumbing(opts) PLAY_NICE = os.environ.get("LEAP_NICE") if PLAY_NICE and PLAY_NICE.isdigit(): nice = os.nice(int(PLAY_NICE)) logger.info("Setting NICE: %s" % nice) # TODO move to a different module: commands? if not we_are_the_one_and_only(): # Bitmask is already running logger.warning("Tried to launch more than one instance " "of Bitmask. Raising the existing " "one instead.") sys.exit(1) check_requirements() logger.info('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') logger.info('Bitmask version %s' % VERSION) logger.info('leap.mail version %s' % MAIL_VERSION) log_lsb_release_info(logger) logger.info('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') logger.info('Starting app') backend_running = BackendProxy().check_online() logger.debug("Backend online: {0}".format(backend_running)) flags_dict = flags_to_dict() backend_pid = None if not backend_running: frontend_pid = os.getpid() backend = lambda: run_backend(opts.danger, flags_dict, frontend_pid) backend_process = multiprocessing.Process(target=backend, name='Backend') # we don't set the 'daemon mode' since we need to start child processes # in the backend # backend_process.daemon = True backend_process.start() backend_pid = backend_process.pid fix_qtplugins_path() run_frontend(options, flags_dict, backend_pid=backend_pid)