1212# Description: starts the mw
1313# ## END INIT INFO
1414
15+ RED=' \033[31m'
16+ GREEN=' \033[32m'
17+ YELLOW=' \033[33m'
18+ BLUE=' \033[34m'
19+ PLAIN=' \033[0m'
20+ BOLD=' \033[1m'
21+ SUCCESS=' [\033[32mOK\033[0m]'
22+ COMPLETE=' [\033[32mDONE\033[0m]'
23+ WARN=' [\033[33mWARN\033[0m]'
24+ ERROR=' [\033[31mERROR\033[0m]'
25+ WORKING=' [\033[34m*\033[0m]'
26+
1527
1628PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~ /bin
1729export LANG=en_US.UTF-8
1830
1931mw_path={$SERVER_PATH }
32+ ROOT_PATH=$( dirname " $mw_path " )
2033PATH=$PATH :$mw_path /bin
2134
2235
@@ -287,6 +300,96 @@ mw_debug(){
287300 gunicorn -b :$port -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 app:app
288301}
289302
303+
304+ # choose mysql login
305+
306+ declare -A DB_TYPE
307+
308+ if [ -d " ${ROOT_PATH} /mysql" ]; then
309+ DB_TYPE[" mysql" ]=" mysql"
310+ fi
311+
312+ if [ -d " ${ROOT_PATH} /mariadb" ]; then
313+ DB_TYPE[" mariadb" ]=" mariadb"
314+ fi
315+
316+ if [ -d " ${ROOT_PATH} /mysql-apt" ]; then
317+ DB_TYPE[" mysql-apt" ]=" mysql-apt"
318+ fi
319+
320+ if [ -d " ${ROOT_PATH} /mysql-yum" ]; then
321+ DB_TYPE[" mysql-yum" ]=" mysql-yum"
322+ fi
323+
324+ SOURCE_LIST_KEY_SORT_TMP=$( echo ${! DB_TYPE[@]} | tr ' ' ' \n' | sort -n)
325+ SOURCE_LIST_KEY=(${SOURCE_LIST_KEY_SORT_TMP// ' \n' / } )
326+ SOURCE_LIST_LEN=${# DB_TYPE[*]}
327+
328+ function AutoSizeStr(){
329+ NAME_STR=$1
330+ NAME_NUM=$2
331+
332+ NAME_STR_LEN=` echo " $NAME_STR " | wc -L`
333+ NAME_NUM_LEN=` echo " $NAME_NUM " | wc -L`
334+
335+ fix_len=35
336+ remaining_len=` expr $fix_len - $NAME_STR_LEN - $NAME_NUM_LEN `
337+ FIX_SPACE=' '
338+ for (( ass_i= 1 ;ass_i<= $remaining_len ;ass_i++ ))
339+ do
340+ FIX_SPACE=" $FIX_SPACE "
341+ done
342+ echo -e " ❖ ${1}${FIX_SPACE}${2} )"
343+ }
344+
345+ mw_connect_mysql (){
346+ if [ " $SOURCE_LIST_LEN " == " 0" ]; then
347+ echo -e " no data!"
348+ exit 1
349+ fi
350+
351+ cm_i=0
352+ for M in ${SOURCE_LIST_KEY[@]} ; do
353+ num=` expr $cm_i + 1`
354+ AutoSizeStr " ${M} " " $num "
355+ cm_i=` expr $cm_i + 1`
356+ done
357+ CHOICE_A=$( echo -e " \n${BOLD} └─ Please select and enter the database you want to log in to [ 1-${SOURCE_LIST_LEN} ]:${PLAIN} " )
358+ read -p " ${CHOICE_A} " INPUT
359+
360+ if [ " $INPUT " == " " ]; then
361+ echo -e " \nDefault not selected!"
362+ exit 1
363+ fi
364+
365+ if [ " $INPUT " -lt " 0" ] || [ " $INPUT " -gt " ${SOURCE_LIST_LEN} " ]; then
366+ echo -e " \nBoundary error not selected!"
367+ exit 1
368+ fi
369+
370+ INPUT=` expr $INPUT - 1`
371+ INPUT_KEY=${SOURCE_LIST_KEY[$INPUT]}
372+ CHOICE_DB=${DB_TYPE[$INPUT_KEY]}
373+ echo " login to ${CHOICE_DB} :"
374+ pwd=$( cd /www/server/mdserver-web && python3 /www/server/mdserver-web/plugins/${CHOICE_DB} /index.py root_pwd)
375+ if [ " $CHOICE_DB " == " mysql" ]; then
376+ ${ROOT_PATH} /mysql/bin/mysql -uroot -p" ${pwd} "
377+ fi
378+
379+ if [ " $CHOICE_DB " == " mariadb" ]; then
380+ ${ROOT_PATH} /mariadb/bin/mariadb -S ${ROOT_PATH} /mariadb/mysql.sock -uroot -p" ${pwd} "
381+ fi
382+
383+ if [ " $CHOICE_DB " == " mysql-apt" ]; then
384+ ${ROOT_PATH} /mysql-apt/bin/usr/bin/mysql -S ${ROOT_PATH} /mysql-apt/mysql.sock -uroot -p" ${pwd} "
385+ fi
386+
387+ if [ " $CHOICE_DB " == " mysql-yum" ]; then
388+ ${ROOT_PATH} /mysql-yum/bin/usr/bin/mysql -S ${ROOT_PATH} /mysql-yum/mysql.sock -uroot -p" ${pwd} "
389+ fi
390+
391+ }
392+
290393case " $1 " in
291394 ' start' ) mw_start;;
292395 ' stop' ) mw_stop;;
@@ -311,6 +414,7 @@ case "$1" in
311414 ' unbind_domain' ) mw_unbind_domain;;
312415 ' debug' ) mw_debug;;
313416 ' mirror' ) mw_mirror;;
417+ ' db' ) mw_connect_mysql;;
314418 ' default' )
315419 cd $mw_path
316420 port=7200
0 commit comments