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
No related branches found
No related tags found
1 merge request!24fix menu with started database less app; apply template permissions on target...
......@@ -28,20 +28,21 @@
# 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
# 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
# init used vars
gittarget=
frontendurl=
WEBURL=
_self=$( basename "$0" )
# shellcheck source=/dev/null
. "${_self}.cfg" || exit 1
_version="1.23"
_version="1.24"
# git@git-repo.iml.unibe.ch:iml-open-source/docker-php-starterkit.git
selfgitrepo="docker-php-starterkit.git"
......@@ -65,6 +66,7 @@ DC_REPO=1
DC_CONFIG_CHANGED=0
# absolute urls for web app
DC_WEB_URL=""
DC_DUMP_DIR=dbdumps
......@@ -77,6 +79,19 @@ ps -ef | grep dockerd-rootless | grep -q $USER && isDockerRootless=1
# 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
......@@ -118,10 +133,14 @@ function _getStatus_docker(){
# Get web url of the application
# It is for support of 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(){
DC_WEB_URL="$frontendurl"
grep -q "${APP_NAME}-server" /etc/hosts && DC_WEB_URL="https://${APP_NAME}-server/"
if grep -q "^[0-9\.]* ${APP_NAME}-server" /etc/hosts; then
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(){
# helper for menu: print an inverted key
function _key(){
echo -en "\e[4;7m ${1} \e[0m"
echo -en "$fgInvert ${1} $fgReset"
}
# helper for menu: show hint text
......@@ -170,7 +189,7 @@ function showMenu(){
fi
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
fi
......@@ -185,7 +204,10 @@ function showMenu(){
echo "${_spacer}$( _key T ) - remove generated files"
echo
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
menuhint $_bAll "A container is down and config is unchanged"
echo "${_spacer}$( _key u ) - startup containers docker-compose ... up -d"
......@@ -196,7 +218,7 @@ function showMenu(){
fi
fi
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
echo "${_spacer}$( _key m ) - more infos"
......@@ -362,7 +384,7 @@ function _fix_no-db(){
local iStart; typeset -i iStart
iStart=$( grep -Fn "$CUTTER_NO_DATABASE" "${_file}" | cut -f 1 -d ':' )-1
if [ $iStart -gt 0 ]; then
sed -ni "1,${iStart}p" "${_file}"
sed -n "$sed_no_backup" "1,${iStart}p" "${_file}"
fi
fi
}
......@@ -424,14 +446,15 @@ function _generateFiles(){
# write file from line 2 to a tmp file
sed -n '2,$p' "$mytpl" >"$_tmpfile"
chmod "$( stat -c %a "$mytpl" )" "$_tmpfile"
# add generator
# sed -i "s#{{generator}}#generated by $0 - template: $mytpl - $( date )#g" $_tmpfile
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
eval sed -i "$params" "$_tmpfile" || exit
eval sed "$sed_no_backup" "$params" "$_tmpfile" || exit
_fix_no-db $_tmpfile
......@@ -444,7 +467,7 @@ function _generateFiles(){
echo -n "$mytpl - changes detected - writing [$target] ... "
mkdir -p "$( dirname ../"$target" )" || exit 2
mv "$_tmpfile" "../$target" || exit 2
echo OK
echo -e "${fgGreen}OK${fgReset}"
echo
fi
else
......@@ -473,7 +496,7 @@ function _removeGeneratedFiles(){
echo -n "REMOVING "
ls -l "../$target" || exit 2
rm -f "../$target" || exit 2
echo OK
echo -e "${fgGreen}OK${fgReset}"
else
echo "SKIP: $target"
fi
......@@ -608,7 +631,10 @@ function _dbImport(){
fi
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
echo "OK"
else
......@@ -620,6 +646,18 @@ function _dbImport(){
# MAIN
# ----------------------------------------------------------------------
_checkConfig
# Mac OS compatibility
case "$OSTYPE" in
darwin*|bsd*)
sed_no_backup=" -i '' "
;;
*)
sed_no_backup="-i"
;;
esac
action=$1; shift 1
while true; do
......
......@@ -70,8 +70,10 @@ DOCKER_USER_UID=33
# document root inside web-server container
WEBROOT=/var/www/${APP_NAME}/public_html
# path of web url to open
WEBURL=/
CUTTER_NO_DATABASE="CUT-HERE-FOR-NO-DATABASE"
frontendurl=http://localhost:${APP_PORT}/
# ----------------------------------------------------------------------
......@@ -106,9 +106,11 @@ DOCKER_USER_UID=33
# document root inside web-server container
WEBROOT=/var/www/${APP_NAME}/public_html
# path of web url to open
WEBURL=/
CUTTER_NO_DATABASE="CUT-HERE-FOR-NO-DATABASE"
frontendurl=http://localhost:${APP_PORT}/
# ----------------------------------------------------------------------
```
......@@ -138,5 +140,6 @@ MYSQL_PASS | string | mypassword
MYSQL_RANDOM_ROOT_PASSWORD | string | 0
MYSQL_ROOT_PASS | string | 12345678
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment