piler-docker/patch.sh

113 lines
3.4 KiB
Bash
Raw Normal View History

2024-06-05 10:08:14 +00:00
#!/bin/bash
# Colors
if [ -z ${BASH_SOURCE} ]; then
blue=`echo "\e[1m\e[34m"`
green=`echo "\e[1m\e[32m"`
greenBold=`echo "\e[1m\e[1;32m"`
redBold=`echo "\e[1m\e[1;31m"`
red=`echo "\e[1m\e[31m"`
purple=`echo "\e[1m\e[35m"`
bold=`echo "\e[1m"`
normal=`echo "\e[0m"`
else
blue=`echo -e "\e[1m\e[34m"`
green=`echo -e "\e[1m\e[32m"`
greenBold=`echo -e "\e[1m\e[1;32m"`
redBold=`echo -e "\e[1m\e[1;31m"`
purple=`echo -e "\e[1m\e[35m"`
bold=`echo -e "\e[1m"`
normal=`echo -en "\e[0m"`
fi
HLINE="================================================================"
HLINE_SMALL="================================="
BLA_metro=( 0.2 ' ' '= ' '== ' '=== ' ' ===' ' ==' ' =' )
BLA::play_loading_animation_loop() {
while true ; do
for frame in "${BLA_active_loading_animation[@]}" ; do
printf "\r%s" "${frame}"
sleep "${BLA_loading_animation_frame_interval}"
done
done
}
BLA::start_loading_animation() {
BLA_active_loading_animation=( "${@}" )
BLA_loading_animation_frame_interval="${BLA_active_loading_animation[0]}"
unset "BLA_active_loading_animation[0]"
tput civis # Hide the terminal cursor
BLA::play_loading_animation_loop &
BLA_loading_animation_pid="${!}"
}
BLA::stop_loading_animation() {
kill "${BLA_loading_animation_pid}" &> /dev/null
printf "\n"
tput cnorm # Restore the terminal cursor
}
#######################################################################################
echo
echo "${greenBold}${HLINE_SMALL}"
echo "Check if patches are available"
echo "${greenBold}${HLINE_SMALL}${normal}"
echo
#######################################################################################
# config load
. ./piler.conf
# Check Version
compare_versions() {
local version1=$1
local version2=$2
local ver1=$(echo "$version1" | awk -F. '{ printf("%03d%03d%03d", $1, $2, $3); }')
local ver2=$(echo "$version2" | awk -F. '{ printf("%03d%03d%03d", $1, $2, $3); }')
if [[ "$ver1" -ge "$ver2" ]]; then
return 0
else
return 1
fi
}
##################### Patch for Update to Piler v1.4.5 or higher ######################
# Check the manticore.conf to see if the entry "listen = 127.0.0.1:9307:mysql_readonly" is present.
# If the entry does not exist, set the entry in the manticore.conf
required_version="1.4.5"
if compare_versions "$PILER_VERSION" "$required_version"; then
file="/var/lib/docker/volumes/piler-docker_piler_etc/_data/manticore.conf"
2024-06-05 18:32:47 +00:00
patchNum="pilerPatch001"
2024-06-05 10:08:14 +00:00
search_entry="127.0.0.1:9307:"
2024-06-06 12:46:29 +00:00
new_entry="${patchNum}\tlisten\t\t\t= 127.0.0.1:9307:mysql_readonly"
2024-06-05 10:08:14 +00:00
if [ -f $file ]; then
# Check the manticore.conf to see if the entry "listen = 127.0.0.1:9307:mysql_readonly" is present
if ! grep -qF "$search_entry" "$file"; then
# If the entry does not exist, set the entry in the manticore.conf
sed -i "/listen/!b; :a; {n; /listen/!ba}; a $new_entry" "$file"
sed -i "s/\<$patchNum\>//g" "$file"
2024-06-05 18:32:03 +00:00
if grep -q '\btlisten\b' "$file"; then
sed -i 's/\btlisten\b/listen/g' "$file"
fi
2024-06-05 18:32:47 +00:00
2024-06-05 10:08:14 +00:00
echo "Patch manticore.conf with new entry: listen = 127.0.0.1:9307:mysql_readonly"
else
echo "Patch already executed. No action required"
fi
else
echo "The file manticore.conf does not exist. The patch cannot be executed"
fi
fi
#######################################################################################
exit 0