(check, env, exec_command, install_vim, install_tools)
Run a shell inside the Agent docker container.
Run a shell inside the Agent docker container.
Run a shell inside the Agent docker container .
def shell(check, env, exec_command, install_vim, install_tools):
    """Run a shell inside the Agent docker container."""
    envs = get_configured_envs(check)
    if not envs:
        echo_failure(f'No active environments found for `{check}`.')
        echo_info(f'See what is available to start via `ddev env ls {check}`.')
        abort()

    if not env:
        if len(envs) > 1:
            echo_failure(f'Multiple active environments found for `{check}`, please specify one.')
            echo_info('See what is active via `ddev env ls`.')
            abort()

        env = envs[0]

    if env not in envs:
        echo_failure(f'`{env}` is not an active environment.')
        echo_info('See what is active via `ddev env ls`.')
        abort()

    environment = create_interface(check, env)

    if environment.ENV_TYPE == 'local':
        abort('Shell subcommand only available for docker e2e environments')

    if install_vim or install_tools:
        tools = list(install_tools)
        if install_vim:
            tools.extend(('less', 'vim'))
        echo_info(f'Installing helper tools: {", ".join(tools)}')
        environment.exec_command('/bin/bash -c "apt update && apt install -y {}"'.format(" ".join(tools)))

    if exec_command:
        echo_info(f'Executing command: {exec_command}...')
        environment.exec_command(f'/bin/bash -c "{exec_command}"')
        return

    result = environment.shell()

    if result.code:
        abort(result.stdout + result.stderr, code=result.code)
def shell ( check , env , exec_command , install_vim , install_tools ) : envs = get_configured_envs ( check ) if not envs : echo_failure ( f'No active environments found for `{check}`.' ) echo_info ( f'See what is available to start via `ddev env ls {check}`.' ) abort ( ) if not env : if len ( envs ) > 1 : echo_failure ( f'Multiple active environments found for `{check}`, please specify one.' ) echo_info ( 'See what is active via `ddev env ls`.' ) abort ( ) env = envs [ 0 ] if env not in envs : echo_failure ( f'`{env}` is not an active environment.' ) echo_info ( 'See what is active via `ddev env ls`.' ) abort ( ) environment = create_interface ( check , env ) if environment . ENV_TYPE == 'local' : abort ( 'Shell subcommand only available for docker e2e environments' ) if install_vim or install_tools : tools = list ( install_tools ) if install_vim : tools . extend ( ( 'less' , 'vim' ) ) echo_info ( f'Installing helper tools: {", ".join(tools)}' ) environment . exec_command ( '/bin/bash -c "apt update && apt install -y {}"' . format ( " " . join ( tools ) ) ) if exec_command : echo_info ( f'Executing command: {exec_command}...' ) environment . exec_command ( f'/bin/bash -c "{exec_command}"' ) return result = environment . shell ( ) if result . code : abort ( result . stdout + result . stderr , code = result . code )