#!/usr/bin/env bash REQUIRED_VARIABLES=(PROJECT_NAME SCRIPT_PATH IMAGE_NAME IMAGE_VERSION) for _var in ${REQUIRED_VARIABLES[@]}; do if [ -z ${!_var+x} ]; then echo "Missing definition of variable: ${_var}" exit 2 fi done source ${SCRIPT_PATH}/../settings.shinc source ${SCRIPT_PATH}/../functions.shinc # # Commonly used functions # stop() { __msg "Stopping container... " 0 no STATUS=$(docker stop ${PROJECT_NAME} > /dev/null 2>&1) if [[ $? -ne 0 ]]; then __err "${STATUS}" return 1 else __success "[ok]" fi return 0 } start() { __msg "Starting container... " 0 no STATUS=$(docker start ${PROJECT_NAME} 2>&1) if [[ $? -ne 0 ]]; then __err "${STATUS}" return 1 else __success "[ok]" fi return 0 } remove() { stop __msg "Removing container... " 0 no STATUS=$(docker rm ${PROJECT_NAME} 2>&1) if [[ $? -ne 0 ]]; then __err "${STATUS}" return 1 else __success "[ok]" fi return 0 } logs() { docker logs "$@" ${PROJECT_NAME} return $? } exec() { # Test if bash is available docker exec -it ${PROJECT_NAME} /bin/bash -c "echo 'test'" > /dev/null 2>&1 if [[ $? -eq 0 ]]; then docker exec -it ${PROJECT_NAME} /bin/bash return $? fi # Test if bash is available docker exec -it ${PROJECT_NAME} /bin/sh -c "echo 'test'" > /dev/null 2>&1 if [[ $? -eq 0 ]]; then docker exec -it ${PROJECT_NAME} /bin/sh return $? fi __err "Could not find either sh or bash in the container" return 1 } help() { echo "┌──────────────────────────────────────────────────────────────┐" echo "│ Available commands │" echo "└──────────────────────────────────────────────────────────────┘" echo -e -n "$LOG" echo " > init - Initializes the environment" echo " > start - Start containers" echo " > stop - Stops containers" echo " > remove - Removes traces of the container" echo " > logs - Shows logs" echo " > exec - Enters the containers tty" echo " > help - Display this help" echo -e -n "${NORMAL}" echo "└──────────────────────────────────────────────────────────────┘" return 0 }