#!/usr/bin/env bash set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" enter_default_cmd() { declare desc="enters running app container of specified proc type" local cmd="enter" local APP="$2"; local CONTAINER_TYPE="$3"; local IMAGE_TAG=$(get_running_image_tag "$APP"); local IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG") verify_app_name "$APP" [[ ! -n "$3" ]] && dokku_log_fail "No container id specified" if [[ "$3" == "--container-id" ]]; then [[ ! -n "$4" ]] && dokku_log_fail "No container id specified" local DOKKU_APP_CIDS=( $(get_app_container_ids "$APP") ) printf -- '%s\n' "${DOKKU_APP_CIDS[@]}" | grep -q -e "^$4" || dokku_log_fail "Invalid container id for app" local ID=$(printf -- '%s\n' "${DOKKU_APP_CIDS[@]}" | grep -e "^$4") shift 4 else local DOKKU_APP_CIDS=( $(get_app_container_ids "$APP" "$CONTAINER_TYPE") ) local ID=${DOKKU_APP_CIDS[0]} [[ ! -n $ID ]] && dokku_log_fail "No containers found for type '$CONTAINER_TYPE'" shift 3 fi docker ps -aq --no-trunc | grep -e "^$ID" > /dev/null || dokku_log_fail "Container does not exist" docker ps -q --no-trunc | grep -e "^$ID" > /dev/null || dokku_log_fail "Container is not running" local EXEC_CMD="" has_tty && local DOKKU_RUN_OPTS+=" -i -t" is_image_herokuish_based "$IMAGE" && local EXEC_CMD="/exec" # shellcheck disable=SC2086 docker exec $DOKKU_RUN_OPTS $ID $EXEC_CMD "${@:-/bin/bash}" } enter_default_cmd "$@"