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

show info if there is no database container; speedup replacements

parent 40d822d2
Branches
No related tags found
1 merge request!12show info if there is no database container; speedup replacements
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
# 2023-12-07 v1.10 <www.axel-hahn.de> simplyfy console command; add php linter # 2023-12-07 v1.10 <www.axel-hahn.de> simplyfy console command; add php linter
# 2024-07-01 v1.11 <www.axel-hahn.de> diff with colored output; suppress errors on port check # 2024-07-01 v1.11 <www.axel-hahn.de> diff with colored output; suppress errors on port check
# 2024-07-19 v1.12 <axel.hahn@unibe.ch> apply shell fixes # 2024-07-19 v1.12 <axel.hahn@unibe.ch> apply shell fixes
# 2024-07-22 v1.13 <axel.hahn@unibe.ch> show info if there is no database container; speedup replacements
# ====================================================================== # ======================================================================
cd "$( dirname "$0" )" || exit 1 cd "$( dirname "$0" )" || exit 1
...@@ -33,7 +34,7 @@ _self=$( basename "$0" ) ...@@ -33,7 +34,7 @@ _self=$( basename "$0" )
# 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"
_version="1.12" _version="1.13"
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# FUNCTIONS # FUNCTIONS
...@@ -169,6 +170,23 @@ function _fix_no-db(){ ...@@ -169,6 +170,23 @@ function _fix_no-db(){
fi fi
} }
# helper functiion to generate replacements using sed
# it loops over all vars in the config file
# used in _generateFiles
function _getreplaces(){
# loop over vars to make the replacement
grep "^[a-zA-Z]" "$_self.cfg" | while read -r line
do
# echo replacement: $line
mykey=$( echo "$line" | cut -f 1 -d '=' )
myvalue="$( eval echo \"\$"$mykey"\" )"
# TODO: multiline values fail here in replacement with sed
echo -e "s#{{$mykey}}#${myvalue}#g"
done
}
# loop over all files in templates subdir make replacements and generate # loop over all files in templates subdir make replacements and generate
# a target file. # a target file.
# It skips if # It skips if
...@@ -176,14 +194,14 @@ function _fix_no-db(){ ...@@ -176,14 +194,14 @@ function _fix_no-db(){
# - target file has no updated lines # - target file has no updated lines
function _generateFiles(){ function _generateFiles(){
# re-read config vars
# shellcheck source=/dev/null # shellcheck source=/dev/null
. "${_self}.cfg" || exit 1 . "${_self}.cfg" || exit 1
params=$( _getreplaces | while read -r line; do echo -n "-e '$line' "; done )
local _tmpfile=/tmp/newfilecontent$$.tmp local _tmpfile=/tmp/newfilecontent$$.tmp
h2 "generate files from templates..." h2 "generate files from templates..."
for mytpl in templates/* time for mytpl in templates/*
do do
# h3 $mytpl # h3 $mytpl
local _doReplace=1 local _doReplace=1
...@@ -207,19 +225,7 @@ function _generateFiles(){ ...@@ -207,19 +225,7 @@ function _generateFiles(){
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 "s#{{generator}}#GENERATED BY $_self - template: $mytpl - $_md5#g" $_tmpfile
# loop over vars to make the replacement eval sed -i "$params" "$_tmpfile" || exit
grep "^[a-zA-Z]" "$_self.cfg" | while read -r line
do
# echo replacement: $line
mykey=$( echo "$line" | cut -f 1 -d '=' )
myvalue="$( eval echo \"\$"$mykey"\" )"
if grep "{{$mykey}}" $_tmpfile >/dev/null; then
# TODO: multiline values fail here in replacement with sed
sed -i -e "s#{{$mykey}}#${myvalue}#g" $_tmpfile
fi
done
_fix_no-db $_tmpfile _fix_no-db $_tmpfile
...@@ -229,12 +235,12 @@ function _generateFiles(){ ...@@ -229,12 +235,12 @@ function _generateFiles(){
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 OK
echo
else else
rm -f $_tmpfile rm -f $_tmpfile
echo "SKIP: $mytpl - Nothing to do." echo "SKIP: $mytpl - Nothing to do."
fi fi
fi fi
echo
done done
} }
...@@ -265,12 +271,26 @@ function _removeGeneratedFiles(){ ...@@ -265,12 +271,26 @@ function _removeGeneratedFiles(){
# show running containers # show running containers
function _showContainers(){ function _showContainers(){
local bLong=$1 local bLong=$1
local _out
h2 CONTAINERS h2 CONTAINERS
if [ -z "$bLong" ]; then _out=$( if [ -z "$bLong" ]; then
docker-compose -p "$APP_NAME" ps docker-compose -p "$APP_NAME" ps
else else
docker ps | grep "$APP_NAME" docker ps | grep "$APP_NAME"
fi)
if [ "$( wc -l <<< "$_out" )" -eq 1 ]; then
if [ "$DB_ADD" = "false" ]; then
echo "The web container is <$APP_NAME> is not running. This app has no database container."
else
echo "No container is running for <$APP_NAME>."
fi
else
echo "$_out"
if [ "$DB_ADD" = "false" ]; then
echo "INFO: This app has no database container."
fi
fi fi
} }
...@@ -340,7 +360,7 @@ while true; do ...@@ -340,7 +360,7 @@ while true; do
if [ -z "$action" ]; then if [ -z "$action" ]; then
echo echo
echo -e "\e[32m===== INITIALIZER FOR DOCKER APP [$APP_NAME] v$_version ===== \e[0m\n\r" echo -e "\e[32m----===###| INITIALIZER FOR DOCKER v$_version | $APP_NAME |###===---\e[0m"
_showContainers _showContainers
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment