Skip to content
Snippets Groups Projects

hide unnecessary menu items (WIP)

Merged Hahn Axel (hahn) requested to merge shellfixes into master
1 file
+ 94
58
Compare changes
  • Side-by-side
  • Inline
+ 94
58
@@ -20,6 +20,7 @@
# 2024-07-22 v1.13 <axel.hahn@unibe.ch> show info if there is no database container; speedup replacements
# 2024-07-22 v1.14 <axel.hahn@unibe.ch> show colored boxes with container status
# 2024-07-24 v1.15 <axel.hahn@unibe.ch> update menu output
# 2024-07-26 v1.16 <axel.hahn@unibe.ch> hide unnecessary menu items (WIP)
# ======================================================================
cd "$( dirname "$0" )" || exit 1
@@ -33,7 +34,7 @@ _self=$( basename "$0" )
# shellcheck source=/dev/null
. "${_self}.cfg" || exit 1
_version="1.15"
_version="1.16"
# git@git-repo.iml.unibe.ch:iml-open-source/docker-php-starterkit.git
selfgitrepo="docker-php-starterkit.git"
@@ -45,6 +46,15 @@ fgBrown="\e[33m"
fgBlue="\e[34m"
fgReset="\e[0m"
# ----- status varsiables
# running containers
DC_WEB_UP=0
DC_DB_UP=0
# repo of docker-php-starterkit is here?
DC_REPO=1
DC_CONFIG_CHANGED=0
# ----------------------------------------------------------------------
# FUNCTIONS
@@ -64,26 +74,37 @@ function h3(){
# show help for param -h
function showMenu(){
cat <<EOM
_getStatus_repo
local _spacer=" "
echo
if [ $DC_REPO -eq 1 ]; then
echo "${_spacer}$( _key g ) - remove git data of starterkit"
echo
fi
echo "${_spacer}$( _key i ) - init application: set permissions"
echo "${_spacer}$( _key t ) - generate files from templates"
echo "${_spacer}$( _key T ) - remove generated files"
echo ""
if [ $DC_WEB_UP -eq 0 ];
then
echo "${_spacer}$( _key u ) - startup containers docker-compose ... up -d"
echo "${_spacer}$( _key U ) - startup containers docker-compose ... up -d --build"
else
echo "${_spacer}$( _key s ) - shutdown containers docker-compose stop"
echo "${_spacer}$( _key r ) - remove containers docker-compose rm -f"
fi
echo ""
if [ $DC_WEB_UP -eq 1 ];
then
echo "${_spacer}$( _key m ) - more infos"
echo "${_spacer}$( _key o ) - open app [${APP_NAME}] $frontendurl"
echo "${_spacer}$( _key c ) - console (bash)"
echo "${_spacer}$( _key p ) - console check with php linter"
echo ""
fi
echo "${_spacer}$( _key q ) - quit"
$( _key g ) - remove git data of starterkit
$( _key i ) - init application: set permissions
$( _key t ) - generate files from templates
$( _key T ) - remove generated files
$( _key u ) - startup containers docker-compose ... up -d
$( _key U ) - startup containers docker-compose ... up -d --build
$( _key s ) - shutdown containers docker-compose stop
$( _key r ) - remove containers docker-compose rm -f
$( _key m ) - more infos
$( _key o ) - open app [${APP_NAME}] $frontendurl
$( _key c ) - console (bash)
$( _key p ) - console check with php linter
$( _key q ) - quit
EOM
}
function showHelp(){
cat <<EOH
@@ -156,7 +177,7 @@ function _removeGitdata(){
h2 "Remove git data of starterkit"
echo -n "Current git remote url: "
git config --get remote.origin.url
if git config --get remote.origin.url 2>/dev/null | grep $selfgitrepo >/dev/null; then
if git config --get remote.origin.url 2>/dev/null | grep -q $selfgitrepo; then
echo
echo -n "Delete local .git and .gitignore? [y/N] > "
read -r answer
@@ -278,9 +299,38 @@ function _removeGeneratedFiles(){
done
}
# get container status and set global variable DC_REPO
# DC_REPO = 0 nothing to do - repo was changed to project
# DC_REPO = 1 if repo is in selfgitrepo (must be deleted)
function _getStatus_repo(){
DC_REPO=0
git config --get remote.origin.url 2>/dev/null | grep -q $selfgitrepo && DC_REPO=1
}
# get container status and set global variables
# DC_WEB_UP - web container
# DC_DB_UP - database container
# 0 = down
# 1 = up
function _getStatus_docker(){
local _out
_out=$( docker-compose -p "$APP_NAME" ps)
DC_WEB_UP=0
DC_DB_UP=0
grep -q "${APP_NAME}-server" <<< "$_out" && DC_WEB_UP=1
grep -q "${APP_NAME}-db" <<< "$_out" && DC_DB_UP=1
}
# show running containers
function _showContainers(){
local bLong=$1
_getStatus_docker
local _out
local sUp=".. UP"
@@ -288,56 +338,42 @@ function _showContainers(){
local Status=
local StatusWeb="$sDown"
local StatusDb=""
local StatusDb="$sDown"
local colWeb=
local colDb=
colDb="$fgRed"
colWeb="$fgRed"
_out=$( if [ -z "$bLong" ]; then
docker-compose -p "$APP_NAME" ps
else
# docker ps | grep "$APP_NAME"
docker-compose -p "$APP_NAME" ps
fi)
h2 CONTAINERS
if [ "$( wc -l <<< "$_out" )" -eq 1 ]; then
if [ "$DB_ADD" = "false" ]; then
colDb="$fgGray"
Status="The web container is not running. This app has no database container."
else
StatusDb="down"
Status="No container is running for <$APP_NAME>."
fi
else
grep -q "${APP_NAME}-server" <<< "$_out" && colWeb="$fgGreen"
grep -q "${APP_NAME}-server" <<< "$_out" && StatusWeb="$sUp"
grep -q "${APP_NAME}-db" <<< "$_out" && colDb="$fgGreen"
StatusDb="$sDown"
grep -q "${APP_NAME}-db" <<< "$_out" && StatusDb="$sUp"
if [ $DC_WEB_UP -eq 1 ]; then
colWeb="$fgGreen"
StatusWeb="$sUp"
fi
if [ $DC_DB_UP -eq 1 ]; then
colDb="$fgGreen"
StatusDb="$sUp"
fi
if [ "$DB_ADD" = "false" ]; then
colDb="$fgGray"
StatusDb=""
Status="INFO: This app has no database container."
fi
if [ "$DB_ADD" = "false" ]; then
colDb="$fgGray"
local StatusDb=".. N/A"
Status="This app has no database container."
fi
printf "$colWeb __________________________ $colDb __________________________ $fgReset \n"
printf "$colWeb | %-22s | $colDb | %-22s | $fgReset \n" "" ""
printf "$colWeb | %-22s | $colDb | %-22s | $fgReset \n" "${APP_NAME}-web ${StatusWeb}" "${APP_NAME}-db ${StatusDb}"
printf "$colWeb | %-22s | $colDb | %-22s | $fgReset \n" " PHP ${APP_PHP_VERSION}" " ${MYSQL_IMAGE}"
printf "$colWeb | %-22s | $colDb | %-22s | $fgReset \n" " :${APP_PORT}" " :${DB_PORT}"
printf "$colWeb |__________________________| $colDb |__________________________| $fgReset \n"
h2 CONTAINERS
printf "$colWeb _____________________________ $colDb _____________________________ $fgReset \n"
printf "$colWeb | %-25s | $colDb | %-25s | $fgReset \n" "" ""
printf "$colWeb | %-25s | $colDb | %-25s | $fgReset \n" "${APP_NAME}-web ${StatusWeb}" "${APP_NAME}-db ${StatusDb}"
printf "$colWeb | %-25s | $colDb | %-25s | $fgReset \n" " PHP ${APP_PHP_VERSION}" " ${MYSQL_IMAGE}"
printf "$colWeb | %-25s | $colDb | %-25s | $fgReset \n" " :${APP_PORT}" " :${DB_PORT}"
printf "$colWeb |_____________________________| $colDb |_____________________________| $fgReset \n"
echo
if [ -n "$Status" ]; then
echo
echo "$Status"
echo
fi
echo
if [ -n "$bLong" ]; then
echo "$_out"
Loading