def run_app()

in ebcli/core/ebrun.py [0:0]


def run_app(app):
    squash_cement_logging()

    try:
        app.setup()
        app.run()
        app.close()
    except CaughtSignal:
        io.echo()
        app.close(code=5)
    except NoEnvironmentForBranchError:
        app.close(code=5)
    except InvalidStateError:
        io.log_error(strings['exit.invalidstate'])
        app.close(code=3)
    except NotInitializedError:
        io.log_error(strings['exit.notsetup'])
        app.close(code=126)
    except NoSourceControlError:
        io.log_error(strings['sc.notfound'])
        app.close(code=3)
    except NoRegionError:
        io.log_error(strings['exit.noregion'])
        app.close(code=3)
    except ConnectionError:
        io.log_error(strings['connection.error'])
        app.close(code=2)
    except ArgumentTypeError:
        io.log_error(strings['exit.argerror'])
        app.close(code=4)
    except TooManyPlatformsError:
        io.log_error(strings['toomanyplatforms.error'])
        app.close(code=4)
    except EBCLIException as e:
        if '--verbose' in sys.argv or '--debug' in sys.argv:
            io.log_info(traceback.format_exc())
        else:
            io.log_error('{0} - {1}'.format(e.__class__.__name__, e.message))

        app.close(code=4)
    except Exception as e:
        if str(e):
            message = '{exception_class} - {message}'.format(
                exception_class=e.__class__.__name__,
                message=str(e)
            )
        else:
            message = '{exception_class}'.format(
                exception_class=e.__class__.__name__
            )

        if '--verbose' in sys.argv or '--debug' in sys.argv:
            io.log_info(traceback.format_exc())
            io.log_info(message)
        else:
            io.log_error(message)

        app.close(code=4)