Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@mikklfr
Last active January 13, 2016 10:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikklfr/e9709d9b723e80510bf0 to your computer and use it in GitHub Desktop.
Save mikklfr/e9709d9b723e80510bf0 to your computer and use it in GitHub Desktop.
#!/bin/bash
FOLDERS_DOCKER_COMPOSE=`find -name 'docker-compose.yml' -printf '%h\n' | sort -u`
MODE="$1"
function cmd_app {
action=$1
folder=$2
args=${@:3}
echo -e "$action $folder"
cd "$folder"
docker-compose $args 2> /dev/null
cd - &>/dev/null
}
function status {
for folder in ${FOLDERS_DOCKER_COMPOSE}
do
cd "$folder"
echo -e "\n$folder"
docker-compose ps
echo -e "------------------------"
cd - &>/dev/null
done
}
function list {
echo "---------------------------"
for i in ${FOLDERS_DOCKER_COMPOSE}
do
echo "$i"
done
echo "---------------------------"
}
function ask_exec_cmd {
action=$1
args=${@:2}
while [[ "$cmd_all" != "n" && "$cmd_all" != "y" ]]
do
echo -en "$action all ? [Y/n] \c"
read -rn 1 cmd_all
cmd_all=${cmd_all,,}
echo -ne "\n"
done
if [[ "$cmd_all" == "y" ]]
then
echo -e "\n$action all applications\n---------------------------"
for folder in ${FOLDERS_DOCKER_COMPOSE}
do
cmd_app $action $folder $args
done
exit
fi
if [[ "$cmd_all" == "n" ]]
then
for folder in ${FOLDERS_DOCKER_COMPOSE}
do
cmd_one=""
while [[ "$cmd_one" != "n" && "$cmd_one" != "y" ]]
do
echo -en "$action $folder ? [Y/n] \c"
read -rn 1 cmd_one
cmd_one=${cmd_one,,}
echo -ne "\n"
done
if [[ "$cmd_one" == "y" ]]
then
cmd_app $action $folder $args
fi
done
fi
}
echo -e "Docker-Compose Applications\n---------------------------"
if [[ "$MODE" != "start" &&
"$MODE" != "stop" &&
"$MODE" != "status" ]]
then
echo "./docker-composer-manager.sh [stop|start|status|rm|list]"
fi
if [[ "$MODE" == "list" ]]
then
list
fi
if [[ "$MODE" == "status" ]]
then
status
fi
if [[ "$MODE" == "start" ]]
then
list
ask_exec_cmd "start" "up" "-d"
fi
if [[ "$MODE" == "rm" ]]
then
list
ask_exec_cmd "rm" "rm"
fi
if [[ "$MODE" == "stop" ]]
then
list
ask_exec_cmd "stop" "stop"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment