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

Merge branch '1.24' into 'master'

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

See merge request !24
parents 2fdb5055 41c28edc
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