Skip to content

Commit a72b562

Browse files
authored
Merge pull request #402 from fermion2020/main
Update restore script
2 parents e9ed8d1 + fc586c2 commit a72b562

File tree

1 file changed

+97
-1
lines changed

1 file changed

+97
-1
lines changed

install/usr/local/bin/restore

+97-1
Original file line numberDiff line numberDiff line change
@@ -912,6 +912,83 @@ get_filename() {
912912
r_filename=${opt}
913913
}
914914

915+
get_ssl() {
916+
if grep -q "^DB${detected_host_num}_MYSQL_ENABLE_TLS=" "${restore_vars}" ; then
917+
detected_ssl_value=$(grep "^DB${detected_host_num}_MYSQL_ENABLE_TLS=" "${restore_vars}" | head -n1 | cut -d '=' -f 2)
918+
fi
919+
920+
if [[ -z "${detected_ssl_value}" ]]; then
921+
print_debug "Parsed SSL Variant: 1 - No Env Variable Found"
922+
default_ssl="false" # Default if no env variable
923+
q_ssl_variant=1
924+
q_ssl_menu_opt_default="| (${cwh}N${cdgy}) * "
925+
q_ssl_menu="" #No menu option
926+
else
927+
print_debug "Parsed SSL Variant: 2 - Env Variable DB${detected_host_num}_MYSQL_ENABLE_TLS = '${detected_ssl_value}'"
928+
default_ssl="${detected_ssl_value,,}"
929+
q_ssl_variant=2
930+
q_ssl_menu="E ) Environment Variable DB${detected_host_num}_MYSQL_ENABLE_TLS: '${detected_ssl_value}'"
931+
q_ssl_menu_opt_default="| (${cwh}E${cdgy}) * "
932+
fi
933+
934+
cat <<EOF
935+
936+
Do you wish to use SSL for the connection?
937+
${q_ssl_menu}
938+
939+
Y ) Yes
940+
N ) No
941+
Q ) Quit
942+
943+
EOF
944+
945+
r_ssl=""
946+
case "${q_ssl_variant}" in
947+
1) # No env variable, ask directly
948+
while true; do
949+
read -r -p "$(echo -e ${clg}** ${cdgy}Enter Value \(${cwh}Y${cdgy}\) \| \(${cwh}N\*${cdgy}\) : ${cwh}${coff}) " q_ssl
950+
case "${q_ssl,,}" in
951+
y*)
952+
r_ssl="true"
953+
break
954+
;;
955+
n* | "")
956+
r_ssl="false"
957+
break
958+
;;
959+
q*)
960+
print_info "Quitting Script"
961+
exit 1
962+
;;
963+
esac
964+
done
965+
;;
966+
2) # Env variable exists, offer it as an option
967+
while true; do
968+
read -r -p "$(echo -e ${clg}** ${cdgy}Enter Value \(${cwh}E\*${cdgy}\) \| \(${cwh}Y${cdgy}\) \| \(${cwh}N${cdgy}\) : ${cwh}${coff}) " q_ssl
969+
case "${q_ssl,,}" in
970+
e* | "") # Default to env variable if just enter is pressed.
971+
r_ssl="${detected_ssl_value}"
972+
break
973+
;;
974+
y*)
975+
r_ssl="true"
976+
break
977+
;;
978+
n*)
979+
r_ssl="false"
980+
break
981+
;;
982+
q*)
983+
print_info "Quitting Script"
984+
exit 1
985+
;;
986+
esac
987+
done
988+
;;
989+
esac
990+
}
991+
915992
#### SCRIPT START
916993
trap control_c INT
917994
bootstrap_variables restore_init
@@ -984,6 +1061,20 @@ else
9841061
fi
9851062
print_debug "Database Port '${r_dbport}'"
9861063

1064+
## Question SSL connection
1065+
if [[ "${r_dbtype,,}" == "mariadb" || "${r_dbtype,,}" == "mysql" ]]; then
1066+
if [ -n "${8}" ]; then
1067+
r_ssl="${8}"
1068+
else
1069+
get_ssl
1070+
fi
1071+
print_debug "SSL enable: '${r_ssl}'"
1072+
else
1073+
r_ssl="false"
1074+
print_debug "SSL disabled for ${r_dbtype}"
1075+
fi
1076+
1077+
9871078
## Parse Extension
9881079
case "${r_filename##*.}" in
9891080
bz* )
@@ -1013,8 +1104,13 @@ esac
10131104
## Perform a restore
10141105
case "${r_dbtype}" in
10151106
mariadb | mysql )
1107+
if [[ "${r_ssl,,}" == "false" ]]; then
1108+
mysql_ssl_option="--disable-ssl"
1109+
else
1110+
mysql_ssl_option=""
1111+
fi
10161112
print_info "Restoring '${r_filename}' into '${r_dbhost}'/'${r_dbname}'"
1017-
pv ${r_filename} | ${decompress_cmd}cat | mysql -u${r_dbuser} -p${r_dbpass} -P${r_dbport} -h${r_dbhost} ${r_dbname}
1113+
pv ${r_filename} | ${decompress_cmd}cat | mariadb -u${r_dbuser} -p${r_dbpass} -P${r_dbport} -h${r_dbhost} ${mysql_ssl_option} ${r_dbname}
10181114
exit_code=$?
10191115
;;
10201116
pgsql | postgres* )

0 commit comments

Comments
 (0)