Skip to content

Instantly share code, notes, and snippets.

@glaucomorais
Last active July 30, 2021 17:57
Show Gist options
  • Save glaucomorais/044779f587aeeb105fd62571f8bca4ba to your computer and use it in GitHub Desktop.
Save glaucomorais/044779f587aeeb105fd62571f8bca4ba to your computer and use it in GitHub Desktop.
Script to run a PlantUML in a Docker container.
#!/bin/bash
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# PlantUML Docker v1.1 #
# #
# Script to run a PlantUML in a Docker container. #
# #
# Author: Glauco Morais (https://git.io/JB8Z8) #
# License: MIT #
# #
# Copyright (c) 2021 Glauco Morais #
# #
# Permission is hereby granted, free of charge, to any person obtaining #
# a copy of this software and associated documentation files #
# (the "Software"), to deal in the Software without restriction, #
# including without limitation the rights to use, copy, modify, merge, #
# publish, distribute, sublicense, and/or sell copies of the Software, #
# and to permit persons to whom the Software is furnished to do so, #
# subject to the following conditions: #
# #
# The above copyright notice and this permission notice shall be #
# included in all copies or substantial portions of the Software. #
# #
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, #
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF #
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND #
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS #
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN #
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN #
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE #
# SOFTWARE. #
# #
# Changelog: #
# #
# - 1.1: #
# - Added up/down status message #
# #
# - 1.0: #
# - Initial release #
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
END="\033[0m"
BOLD="\033[1m"
ITALIC="\033[3m"
GREEN="\033[32m"
RED="\033[31m"
WHITE="\033[97m"
YELLOW="\033[33m"
plantuml_up() {
PSRESULT="$(docker ps | grep "plantuml" | grep "Up")"
if [ -n "$PSRESULT" ]; then
echo -e "${WHITE}${BOLD}A PlantUML server already running.${END}" >&2
echo -e "Run ${YELLOW}${ITALIC}plantuml down${END} to stop the current running PlantUML server."
exit 0
fi
echo -e "${GREEN}Starting PlantUML server...${END}"
ERRMSG=$(docker run --rm -d -p 8080:8080 plantuml/plantuml-server:latest 2>&1 > /dev/null) \
&& echo -e "${YELLOW}PlantUML${END} started." \
|| echo -e "${RED}$ERRMSG{$END}"
}
plantuml_down() {
CONTAINER_ID="$(docker ps | grep 'plantuml' | awk '{ print $1 }')"
if [ -z "$CONTAINER_ID" ]; then
echo -e "${WHITE}${BOLD}No PlantUML server running.${END}" >&2
echo -e "Run ${YELLOW}${ITALIC}plantuml up${END} to run a PlantUML server."
exit 0
fi
echo -e "${YELLOW}Stopping PlantUML server...${END}"
ERRMSG=$(docker stop $CONTAINER_ID 2>&1 > /dev/null ) \
&& echo -e "${YELLOW}PlantUML${END} server was stopped." \
|| echo -e "${RED}$ERRMSG${END}"
}
if [ $# -gt 0 ]; then
if [ "$1" == "up" ]; then
plantuml_up
elif [ "$1" == "down" ]; then
plantuml_down
fi
else
plantuml_up
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment