From 53a124d65ef8411161e47efb16aa69688ef7d979 Mon Sep 17 00:00:00 2001 From: "Hahn Axel (hahn)" <axel.hahn@unibe.ch> Date: Wed, 30 Oct 2024 15:38:04 +0100 Subject: [PATCH] added: show menu hints why some menu items are visible --- docker/init.sh | 31 +++++++++++++++++-- docker/init.sh.cfg | 6 ++++ .../10_init.sh.cfg.md" | 1 + 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/docker/init.sh b/docker/init.sh index 96effd1..14f1f91 100755 --- a/docker/init.sh +++ b/docker/init.sh @@ -27,6 +27,7 @@ # 2024-10-16 v1.20 <axel.hahn@unibe.ch> add db import and export # 2024-10-25 v1.21 <axel.hahn@unibe.ch> create missing subdir dbdumps # 2024-10-30 v1.22 <axel.hahn@unibe.ch> added: Open Mysql client in container +# 2024-10-30 v1.23 <axel.hahn@unibe.ch> added: show menu hints why some menu items are visible # ====================================================================== cd "$( dirname "$0" )" || exit 1 @@ -40,7 +41,7 @@ _self=$( basename "$0" ) # shellcheck source=/dev/null . "${_self}.cfg" || exit 1 -_version="1.22" +_version="1.23" # git@git-repo.iml.unibe.ch:iml-open-source/docker-php-starterkit.git selfgitrepo="docker-php-starterkit.git" @@ -67,6 +68,7 @@ DC_CONFIG_CHANGED=0 DC_WEB_URL="" DC_DUMP_DIR=dbdumps +DC_SHOW_MENUHINTS=0 isDockerRootless=0 ps -ef | grep dockerd-rootless | grep -q $USER && isDockerRootless=1 @@ -142,6 +144,15 @@ function _key(){ echo -en "\e[4;7m ${1} \e[0m" } +# helper for menu: show hint text +# param int FLag _bAll (i true the txt will be hidden) +# param string message to show +function menuhint(){ + local _bAll="$1" + shift 1 + test $DC_SHOW_MENUHINTS -ne 0 && test "$_bAll" -eq "0" && ( echo -e "$fgBlue $*$fgReset" ) +} + # show menu in interactive mode and list keys in help with param -h # param string optional: set to "all" to show all menu items function showMenu(){ @@ -153,46 +164,60 @@ function showMenu(){ echo if [ $DC_REPO -eq 1 ] || [ $_bAll -eq 1 ]; then + menuhint $_bAll "Git data of starterkit were found" echo "${_spacer}$( _key g ) - remove git data of starterkit" echo fi if [ $isDockerRootless -eq 1 ] || [ $_bAll -eq 1 ]; then + menuhint $_bAll "Beause rootless docker was found" echo "${_spacer}$( _key i ) - init application: set permissions" + echo fi if [ $DC_CONFIG_CHANGED -eq 1 ] || [ $_bAll -eq 1 ]; then + menuhint $_bAll "Config was changed" echo "${_spacer}$( _key t ) - generate files from templates" + echo fi if [ $DC_CONFIG_CHANGED -eq 0 ] || [ $_bAll -eq 1 ]; then + menuhint $_bAll "Config is unchanged" echo "${_spacer}$( _key T ) - remove generated files" + echo fi - echo if [ $DC_WEB_UP -eq 0 ] || [ $DC_DB_UP -eq 0 ] || [ $_bAll -eq 1 ]; then if [ $DC_CONFIG_CHANGED -eq 0 ] || [ $_bAll -eq 1 ]; then + menuhint $_bAll "A container is down and config is unchanged" echo "${_spacer}$( _key u ) - startup containers docker-compose ... up -d" echo "${_spacer}$( _key U ) - startup containers docker-compose ... up -d --build" echo echo "${_spacer}$( _key r ) - remove containers docker-compose rm -f" + echo fi fi if [ $DC_WEB_UP -eq 1 ] || [ $DC_DB_UP -eq 1 ] || [ $_bAll -eq 1 ]; then + menuhint $_bAll "${_spacer}A container is up" echo "${_spacer}$( _key s ) - shutdown containers docker-compose stop" echo echo "${_spacer}$( _key m ) - more infos" echo "${_spacer}$( _key o ) - open app [${APP_NAME}] $DC_WEB_URL" echo "${_spacer}$( _key c ) - console (bash)" + echo fi if [ $DC_WEB_UP -eq 1 ] || [ $_bAll -eq 1 ]; then + menuhint $_bAll "Web container is up" echo "${_spacer}$( _key p ) - console check with php linter" + echo fi if [ $DC_DB_UP -eq 1 ] || [ $_bAll -eq 1 ]; then echo + menuhint $_bAll "Database container is up" echo "${_spacer}$( _key d ) - Dump container database" echo "${_spacer}$( _key D ) - Import Dump into container database" echo "${_spacer}$( _key M ) - Open Mysql client in database container" + echo fi - echo + menuhint $_bAll "Always available" echo "${_spacer}$( _key q ) - quit" } diff --git a/docker/init.sh.cfg b/docker/init.sh.cfg index 0f1cabf..bc6f16d 100644 --- a/docker/init.sh.cfg +++ b/docker/init.sh.cfg @@ -7,6 +7,7 @@ # # ---------------------------------------------------------------------- # 2021-12-17 <axel.hahn@iml.unibe.ch> +# 2024-10-30 <axel.hahn@unibe.ch> add DC_SHOW_MENUHINTS # ====================================================================== APP_NAME=my_new_app @@ -47,6 +48,11 @@ MYSQL_USER=${APP_NAME} MYSQL_PASS=mypassword MYSQL_DB=${APP_NAME} +# ---------------------------------------------------------------------- +# Settings for init.sh + +# show hints for menu items in interactive mode +DC_SHOW_MENUHINTS=0 # ====================================================================== diff --git "a/docs/40_\342\232\231\357\270\217_Configuration/10_init.sh.cfg.md" "b/docs/40_\342\232\231\357\270\217_Configuration/10_init.sh.cfg.md" index 933f0e2..a75f132 100644 --- "a/docs/40_\342\232\231\357\270\217_Configuration/10_init.sh.cfg.md" +++ "b/docs/40_\342\232\231\357\270\217_Configuration/10_init.sh.cfg.md" @@ -129,6 +129,7 @@ APP_PORT | int | port number for your local machine that CUTTER_NO_DATABASE | const | do not change it; the string is used to cut templates from there if no database is used DB_ADD | bool | flag: do you add a Mariadb container? default: false DB_PORT | int | port number for your local machine that will be mapped to port 3306 in the container; You can use it in a local db manager; remark: tha apache container needs 3306 and not the mapped port. +DC_SHOW_MENUHINTS | int | Flag to show a notice why menu items are visible; default: 0 (off) DOCKER_USER_UID | int | unix uid of the httpd service user in apache container; it's not needed to change; default: 33 MYSQL_ALLOW_EMPTY_PASSWORD | int | flag: 0 MYSQL_DB | string | name of database; defaut is app name ${APP_NAME} -- GitLab