Skip to content
Snippets Groups Projects

show info if there is no database container; speedup replacements

Merged Hahn Axel (hahn) requested to merge shellfixes into master
1 file
+ 40
20
Compare changes
  • Side-by-side
  • Inline
+ 40
20
@@ -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
Loading