Skip to content
Snippets Groups Projects
Commit 41c28edc authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

fix menu with started database less app; apply template permissions on target...

fix menu with started database less app; apply template permissions on target file; add $WEBURL; remove $frontendurl
parent 2fdb5055
Branches
No related tags found
1 merge request!24fix menu with started database less app; apply template permissions on target...
...@@ -28,20 +28,21 @@ ...@@ -28,20 +28,21 @@
# 2024-10-25 v1.21 <axel.hahn@unibe.ch> create missing subdir dbdumps # 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.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 # 2024-10-30 v1.23 <axel.hahn@unibe.ch> added: show menu hints why some menu items are visible
# 2024-11-20 v1.24 <axel.hahn@unibe.ch> fix menu with started database less app; apply template permissions on target file; add $WEBURL; remove $frontendurl
# ====================================================================== # ======================================================================
cd "$( dirname "$0" )" || exit 1 cd "$( dirname "$0" )" || exit 1
# init used vars # init used vars
gittarget= gittarget=
frontendurl= WEBURL=
_self=$( basename "$0" ) _self=$( basename "$0" )
# shellcheck source=/dev/null # shellcheck source=/dev/null
. "${_self}.cfg" || exit 1 . "${_self}.cfg" || exit 1
_version="1.23" _version="1.24"
# git@git-repo.iml.unibe.ch:iml-open-source/docker-php-starterkit.git # git@git-repo.iml.unibe.ch:iml-open-source/docker-php-starterkit.git
selfgitrepo="docker-php-starterkit.git" selfgitrepo="docker-php-starterkit.git"
...@@ -65,6 +66,7 @@ DC_REPO=1 ...@@ -65,6 +66,7 @@ DC_REPO=1
DC_CONFIG_CHANGED=0 DC_CONFIG_CHANGED=0
# absolute urls for web app
DC_WEB_URL="" DC_WEB_URL=""
DC_DUMP_DIR=dbdumps DC_DUMP_DIR=dbdumps
...@@ -77,6 +79,19 @@ ps -ef | grep dockerd-rootless | grep -q $USER && isDockerRootless=1 ...@@ -77,6 +79,19 @@ ps -ef | grep dockerd-rootless | grep -q $USER && isDockerRootless=1
# FUNCTIONS # FUNCTIONS
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# check config for changes in newer versions
function _checkConfig(){
# --- v1.24
if [ -z "$WEBURL" ]; then
echo -e "${fgBrown}INFO: add 'WEBURL=\"/\"' in your ${_self}.cfg. It is a new var since v1.24"
WEBURL="/"
fi
if [ -n "$frontendurl" ]; then
echo "INFO: Remove frontendurl=$frontendurl in your ${_self}.cfg. It is obsolete since v1.24"
fi
}
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# STATUS FUNCTIONS # STATUS FUNCTIONS
...@@ -118,10 +133,14 @@ function _getStatus_docker(){ ...@@ -118,10 +133,14 @@ function _getStatus_docker(){
# Get web url of the application # Get web url of the application
# It is for support of Nginx Docker Proxy # It is for support of Nginx Docker Proxy
# https://github.com/axelhahn/nginx-docker-proxy # https://github.com/axelhahn/nginx-docker-proxy
# It returns http://localhost:<port> or a https://<appname> # It returns http://localhost:<port> or a https://<appname> plus $WEBURL
function _getWebUrl(){ function _getWebUrl(){
DC_WEB_URL="$frontendurl" if grep -q "^[0-9\.]* ${APP_NAME}-server" /etc/hosts; then
grep -q "${APP_NAME}-server" /etc/hosts && DC_WEB_URL="https://${APP_NAME}-server/" DC_WEB_URL="https://${APP_NAME}-server$WEBURL"
else
DC_WEB_URL=http://localhost:${APP_PORT}$WEBURL
fi
set +vx
} }
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
...@@ -141,7 +160,7 @@ function h3(){ ...@@ -141,7 +160,7 @@ function h3(){
# helper for menu: print an inverted key # helper for menu: print an inverted key
function _key(){ function _key(){
echo -en "\e[4;7m ${1} \e[0m" echo -en "$fgInvert ${1} $fgReset"
} }
# helper for menu: show hint text # helper for menu: show hint text
...@@ -170,7 +189,7 @@ function showMenu(){ ...@@ -170,7 +189,7 @@ function showMenu(){
fi fi
if [ $isDockerRootless -eq 1 ] || [ $_bAll -eq 1 ]; then if [ $isDockerRootless -eq 1 ] || [ $_bAll -eq 1 ]; then
menuhint $_bAll "Beause rootless docker was found" menuhint $_bAll "Because rootless docker was found"
echo "${_spacer}$( _key i ) - init application: set permissions" echo "${_spacer}$( _key i ) - init application: set permissions"
echo echo
fi fi
...@@ -185,7 +204,10 @@ function showMenu(){ ...@@ -185,7 +204,10 @@ function showMenu(){
echo "${_spacer}$( _key T ) - remove generated files" echo "${_spacer}$( _key T ) - remove generated files"
echo echo
fi fi
if [ $DC_WEB_UP -eq 0 ] || [ $DC_DB_UP -eq 0 ] || [ $_bAll -eq 1 ]; then if [ $DC_WEB_UP -eq 0 ] \
|| [ $DC_DB_UP -eq 0 ] && [ ! "$DB_ADD" = "false" ] \
|| [ $_bAll -eq 1 \
]; then
if [ $DC_CONFIG_CHANGED -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" 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"
...@@ -196,7 +218,7 @@ function showMenu(){ ...@@ -196,7 +218,7 @@ function showMenu(){
fi fi
fi fi
if [ $DC_WEB_UP -eq 1 ] || [ $DC_DB_UP -eq 1 ] || [ $_bAll -eq 1 ]; then if [ $DC_WEB_UP -eq 1 ] || [ $DC_DB_UP -eq 1 ] || [ $_bAll -eq 1 ]; then
menuhint $_bAll "${_spacer}A container is up" menuhint $_bAll "A container is up"
echo "${_spacer}$( _key s ) - shutdown containers docker-compose stop" echo "${_spacer}$( _key s ) - shutdown containers docker-compose stop"
echo echo
echo "${_spacer}$( _key m ) - more infos" echo "${_spacer}$( _key m ) - more infos"
...@@ -362,7 +384,7 @@ function _fix_no-db(){ ...@@ -362,7 +384,7 @@ function _fix_no-db(){
local iStart; typeset -i iStart local iStart; typeset -i iStart
iStart=$( grep -Fn "$CUTTER_NO_DATABASE" "${_file}" | cut -f 1 -d ':' )-1 iStart=$( grep -Fn "$CUTTER_NO_DATABASE" "${_file}" | cut -f 1 -d ':' )-1
if [ $iStart -gt 0 ]; then if [ $iStart -gt 0 ]; then
sed -ni "1,${iStart}p" "${_file}" sed -n "$sed_no_backup" "1,${iStart}p" "${_file}"
fi fi
fi fi
} }
...@@ -424,14 +446,15 @@ function _generateFiles(){ ...@@ -424,14 +446,15 @@ function _generateFiles(){
# write file from line 2 to a tmp file # write file from line 2 to a tmp file
sed -n '2,$p' "$mytpl" >"$_tmpfile" sed -n '2,$p' "$mytpl" >"$_tmpfile"
chmod "$( stat -c %a "$mytpl" )" "$_tmpfile"
# add generator # add generator
# sed -i "s#{{generator}}#generated by $0 - template: $mytpl - $( date )#g" $_tmpfile # sed -i "s#{{generator}}#generated by $0 - template: $mytpl - $( date )#g" $_tmpfile
local _md5; _md5=$( md5sum $_tmpfile | awk '{ print $1 }' ) local _md5; _md5=$( md5sum $_tmpfile | awk '{ print $1 }' )
sed -i "s#{{generator}}#GENERATED BY $_self - template: $mytpl - $_md5#g" $_tmpfile sed -i "$sed_no_backup" "s#{{generator}}#GENERATED BY $_self - template: $mytpl - $_md5#g" $_tmpfile
# apply all replacements to the tmp file # apply all replacements to the tmp file
eval sed -i "$params" "$_tmpfile" || exit eval sed "$sed_no_backup" "$params" "$_tmpfile" || exit
_fix_no-db $_tmpfile _fix_no-db $_tmpfile
...@@ -444,7 +467,7 @@ function _generateFiles(){ ...@@ -444,7 +467,7 @@ function _generateFiles(){
echo -n "$mytpl - changes detected - writing [$target] ... " echo -n "$mytpl - changes detected - writing [$target] ... "
mkdir -p "$( dirname ../"$target" )" || exit 2 mkdir -p "$( dirname ../"$target" )" || exit 2
mv "$_tmpfile" "../$target" || exit 2 mv "$_tmpfile" "../$target" || exit 2
echo OK echo -e "${fgGreen}OK${fgReset}"
echo echo
fi fi
else else
...@@ -473,7 +496,7 @@ function _removeGeneratedFiles(){ ...@@ -473,7 +496,7 @@ function _removeGeneratedFiles(){
echo -n "REMOVING " echo -n "REMOVING "
ls -l "../$target" || exit 2 ls -l "../$target" || exit 2
rm -f "../$target" || exit 2 rm -f "../$target" || exit 2
echo OK echo -e "${fgGreen}OK${fgReset}"
else else
echo "SKIP: $target" echo "SKIP: $target"
fi fi
...@@ -608,7 +631,10 @@ function _dbImport(){ ...@@ -608,7 +631,10 @@ function _dbImport(){
fi fi
echo -n "Importing $dumpfile ... " echo -n "Importing $dumpfile ... "
if zcat "$dumpfile" | docker exec -i "${APP_NAME}-db" mysql -uroot -p${MYSQL_ROOT_PASS} "${MYSQL_DB}"
# Mac OS compatibility
# if zcat "$dumpfile" | docker exec -i "${APP_NAME}-db" mysql -uroot -p${MYSQL_ROOT_PASS} "${MYSQL_DB}"
if cat "$dumpfile" | zcat | docker exec -i "${APP_NAME}-db" mysql -uroot -p${MYSQL_ROOT_PASS} "${MYSQL_DB}"
then then
echo "OK" echo "OK"
else else
...@@ -620,6 +646,18 @@ function _dbImport(){ ...@@ -620,6 +646,18 @@ function _dbImport(){
# MAIN # MAIN
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
_checkConfig
# Mac OS compatibility
case "$OSTYPE" in
darwin*|bsd*)
sed_no_backup=" -i '' "
;;
*)
sed_no_backup="-i"
;;
esac
action=$1; shift 1 action=$1; shift 1
while true; do while true; do
......
...@@ -70,8 +70,10 @@ DOCKER_USER_UID=33 ...@@ -70,8 +70,10 @@ DOCKER_USER_UID=33
# document root inside web-server container # document root inside web-server container
WEBROOT=/var/www/${APP_NAME}/public_html WEBROOT=/var/www/${APP_NAME}/public_html
# path of web url to open
WEBURL=/
CUTTER_NO_DATABASE="CUT-HERE-FOR-NO-DATABASE" CUTTER_NO_DATABASE="CUT-HERE-FOR-NO-DATABASE"
frontendurl=http://localhost:${APP_PORT}/
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
...@@ -106,9 +106,11 @@ DOCKER_USER_UID=33 ...@@ -106,9 +106,11 @@ DOCKER_USER_UID=33
# document root inside web-server container # document root inside web-server container
WEBROOT=/var/www/${APP_NAME}/public_html WEBROOT=/var/www/${APP_NAME}/public_html
# path of web url to open
WEBURL=/
CUTTER_NO_DATABASE="CUT-HERE-FOR-NO-DATABASE" CUTTER_NO_DATABASE="CUT-HERE-FOR-NO-DATABASE"
frontendurl=http://localhost:${APP_PORT}/
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
``` ```
...@@ -138,5 +140,6 @@ MYSQL_PASS | string | mypassword ...@@ -138,5 +140,6 @@ MYSQL_PASS | string | mypassword
MYSQL_RANDOM_ROOT_PASSWORD | string | 0 MYSQL_RANDOM_ROOT_PASSWORD | string | 0
MYSQL_ROOT_PASS | string | 12345678 MYSQL_ROOT_PASS | string | 12345678
MYSQL_USER | string | ${APP_NAME} MYSQL_USER | string | ${APP_NAME}
WEBROOT | string | webroot directory inside apache container; default: /var/www/${APP_NAME}/public_html WEBROOT | string | webroot directory inside apache container; default: /var/www/${APP_NAME}/public_html
WEBURL | string | path of web url to open; default: /
WRITABLEDIR | string | local webroot directory; default: ../public_html WRITABLEDIR | string | local webroot directory; default: ../public_html
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment