Проект

Общее

Профиль

Exec container

#!/usr/bin/env bash
#docker container ls
#docker ps


options=(
    1 "er-web"
    2 "er-pg"
    3 "er-ldap"
    4 "Quit"
)

function run {
    clear
    case ${1} in
        1|er-web)
            execContainer "er-web"
            ;;
        2|er-pg)
            execContainer "er-pg"
            ;;
        3|er-ldap)
            execContainer "er-ldap"
            ;;
        4|[Qq][Uu][Ii][Tt])
            echo "Quit"
            exit 0
            ;;
        *) echo "invalid option $REPLY";;
    esac
}

function execContainer {
    container_name=${1}
    container_status=$(docker inspect --format '{{json .State.Running}}' "${container_name}")

    if [ "${container_status}" = "true" ]; then
        exec docker container exec -it "${container_name}" /bin/bash -l
    else
        echo "container ${container_name} not running"
        exit 1
    fi
}


if [ -n "${1}" ]; then
    run ${1}
fi

function selectMenu {
    PS3='Please enter your choice: '
    select selected in "er-web" "er-pg" "er-ldap" "Quit"
    do
        run ${selected}
    done
}

function selectMenuDialog {
    height=15
    width=40
    choice_height=4
    backtitle="Backtitle here"
    title="Title here"
    menu="Choose one of the following options:"
    selected=$(dialog --clear \
        --backtitle "${backtitle}" \
        --title "${title}" \
        --menu "${menu}" \
        ${height} ${width} ${choice_height} \
        "${options[@]}" \
        2>&1 >/dev/tty)

    run ${selected}
}


if [ -n $(which dialog) ]; then
    selectMenuDialog
else
    selectMenu
fi

exit 0