You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.2 KiB
Bash

function _log() {
echo "[Log] $@"
}
root_path=`pwd`
file_name=${1}
branch_name=`git branch | awk '$1 == "*"{print}' | awk -F/ '{print $2}' | awk -F')' '{print $1}'`
version_sql_path=$root_path/global/sql
if [ ! -d $version_sql_path ];
then
mkdir -p $version_sql_path
fi
cat >> test.lua << EOF
local dbconf = require("$file_name")
print("database", dbconf.mysql_gamedb.database)
print("confdatabase", dbconf.mysql_confdb.database)
print("host", dbconf.mysql_gamedb.host)
print("port", dbconf.mysql_gamedb.port)
print("user", dbconf.mysql_gamedb.user)
print("password", dbconf.mysql_gamedb.password)
EOF
ret=(`lua test.lua | awk -F" " '{print $2}'`)
db_gamedata=${ret[0]}
db_gameconf=${ret[1]}
host=${ret[2]}
port=${ret[3]}
user=${ret[4]}
password=${ret[5]}
MYSQL="mysql -u$user -p$password -h$host -P$port"
notchange="nothing to commit, working tree clean"
rm -rf test.lua
cd ${version_sql_path}
files=$(ls)
sql_name=$version_sql_path/${branch_name}.sql
if [ ! -f "$sql_name" ]; then
echo "USE \`${db_gamedata}\`;" > ${sql_name}
fi
#排序后遍历文件
for file in ${files[@]}
do
_log "执行 sql文件:" $file
${MYSQL} --force $db_gamedata < $file 2>/dev/null
done
rm -rf out.txt