mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 15:58:04 +00:00
fixed and updated db_assembler to even support old bash v3 ( osx )
we're emulating associative array
This commit is contained in:
@@ -19,135 +19,147 @@ else
|
|||||||
MD5_CMD="md5sum"
|
MD5_CMD="md5sum"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
reg_file="$OUTPUT_FOLDER/.zzz_db_assembler_registry.sh"
|
reg_file="$OUTPUT_FOLDER/__db_assembler_registry"
|
||||||
|
|
||||||
registry=()
|
|
||||||
|
|
||||||
if [ -f "$reg_file" ]; then
|
if [ -f "$reg_file" ]; then
|
||||||
source "$reg_file"
|
source "$reg_file"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "===== STARTING PROCESS ====="
|
|
||||||
|
|
||||||
|
|
||||||
function assemble() {
|
function assemble() {
|
||||||
database=$1
|
# to lowercase
|
||||||
|
database=${1,,}
|
||||||
start_sql=$2
|
start_sql=$2
|
||||||
|
with_base=$3
|
||||||
|
with_updates=$4
|
||||||
|
with_custom=$5
|
||||||
|
|
||||||
var_base="DB_"$database"_PATHS"
|
var_base="DB_"$1"_PATHS"
|
||||||
base=${!var_base}
|
base=${!var_base}
|
||||||
|
|
||||||
var_updates="DB_"$database"_UPDATE_PATHS"
|
var_updates="DB_"$1"_UPDATE_PATHS"
|
||||||
updates=${!var_updates}
|
updates=${!var_updates}
|
||||||
|
|
||||||
var_custom="DB_"$database"_CUSTOM_PATHS"
|
var_custom="DB_"$1"_CUSTOM_PATHS"
|
||||||
custom=${!var_custom}
|
custom=${!var_custom}
|
||||||
|
|
||||||
|
echo $updates
|
||||||
suffix_base=""
|
|
||||||
suffix_upd=""
|
|
||||||
suffix_custom=""
|
|
||||||
|
|
||||||
if (( $ALL_IN_ONE == 0 )); then
|
|
||||||
suffix_base="_base"
|
|
||||||
fi;
|
|
||||||
|
|
||||||
echo "" > $OUTPUT_FOLDER$database$suffix_base".sql"
|
|
||||||
|
|
||||||
|
|
||||||
if [ ! ${#base[@]} -eq 0 ]; then
|
suffix_base="_base"
|
||||||
echo "Generating $OUTPUT_FOLDER$database$suffix_base ..."
|
suffix_upd="_update"
|
||||||
|
suffix_custom="_custom"
|
||||||
|
|
||||||
for d in "${base[@]}"
|
curTime=`date +%Y_%m_%d_%H_%M_%S`
|
||||||
do
|
|
||||||
if [ ! -z $d ]; then
|
if [ $with_base = true ]; then
|
||||||
for entry in "$d"/*.sql "$d"/**/*.sql
|
echo "" > $OUTPUT_FOLDER$database$suffix_base".sql"
|
||||||
do
|
|
||||||
if [[ -e $entry ]]; then
|
|
||||||
cat "$entry" >> $OUTPUT_FOLDER$database$suffix_base".sql"
|
if [ ! ${#base[@]} -eq 0 ]; then
|
||||||
fi
|
echo "Generating $OUTPUT_FOLDER$database$suffix_base ..."
|
||||||
done
|
|
||||||
fi
|
for d in "${base[@]}"
|
||||||
done
|
do
|
||||||
|
echo "Searching on $d ..."
|
||||||
|
if [ ! -z $d ]; then
|
||||||
|
for entry in "$d"/*.sql "$d"/**/*.sql
|
||||||
|
do
|
||||||
|
if [[ -e $entry ]]; then
|
||||||
|
cat "$entry" >> $OUTPUT_FOLDER$database$suffix_base".sql"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (( $ALL_IN_ONE == 0 )); then
|
if [ $with_updates = true ]; then
|
||||||
suffix_upd="_updates"
|
updFile=$OUTPUT_FOLDER$database$suffix_upd"_"$curTime".sql"
|
||||||
|
|
||||||
echo "" > $OUTPUT_FOLDER$database$suffix_upd".sql"
|
if [ ! ${#updates[@]} -eq 0 ]; then
|
||||||
fi;
|
echo "Generating $OUTPUT_FOLDER$database$suffix_upd ..."
|
||||||
|
|
||||||
if [ ! ${#updates[@]} -eq 0 ]; then
|
for d in "${updates[@]}"
|
||||||
echo "Generating $OUTPUT_FOLDER$database$suffix_upd ..."
|
do
|
||||||
|
echo "Searching on $d ..."
|
||||||
|
if [ ! -z $d ]; then
|
||||||
|
for entry in "$d"/*.sql "$d"/**/*.sql
|
||||||
|
do
|
||||||
|
if [[ ! -e $entry ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
for d in "${updates[@]}"
|
file=$(basename "$entry")
|
||||||
do
|
hash=$($MD5_CMD "$entry")
|
||||||
if [ ! -z $d ]; then
|
hash="${hash%% *}" #remove file path
|
||||||
for entry in "$d"/*.sql "$d"/**/*.sql
|
n="registry__$hash"
|
||||||
do
|
if [[ -z ${!n} ]]; then
|
||||||
if [[ ! -e $entry ]]; then
|
if [ ! -e $updFile ]; then
|
||||||
continue
|
echo "" > $updFile
|
||||||
fi
|
fi
|
||||||
|
|
||||||
file=$(basename "$entry")
|
printf -v "registry__${hash}" %s "$file"
|
||||||
hash=$($MD5_CMD "$entry")
|
echo "-- New update sql: "$file
|
||||||
hash="${hash%% *}" #remove file path
|
cat "$entry" >> $updFile
|
||||||
if [[ -z ${registry[$hash]} ]]; then
|
fi
|
||||||
registry["$hash"]="$file"
|
done
|
||||||
echo "-- New update sql: "$file
|
fi
|
||||||
cat "$entry" >> $OUTPUT_FOLDER$database$suffix_upd".sql"
|
done
|
||||||
fi
|
fi
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (( $ALL_IN_ONE == 0 )); then
|
if [ $with_custom = true ]; then
|
||||||
suffix_custom="_custom"
|
custFile=$OUTPUT_FOLDER$database$suffix_custom"_"$curTime".sql"
|
||||||
|
|
||||||
echo "" > $OUTPUT_FOLDER$database$suffix_custom".sql"
|
if [ ! ${#custom[@]} -eq 0 ]; then
|
||||||
fi;
|
echo "Generating $OUTPUT_FOLDER$database$suffix_custom ..."
|
||||||
|
|
||||||
|
for d in "${custom[@]}"
|
||||||
|
do
|
||||||
|
echo "Searching on $d ..."
|
||||||
|
if [ ! -z $d ]; then
|
||||||
|
for entry in "$d"/*.sql "$d"/**/*.sql
|
||||||
|
do
|
||||||
|
if [[ ! -e $entry ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
file=$(basename "$entry")
|
||||||
|
hash=$($MD5_CMD "$entry")
|
||||||
|
hash="${hash%% *}" #remove file path
|
||||||
|
n="registry__$hash"
|
||||||
|
if [[ -z ${!n} ]]; then
|
||||||
|
if [ ! -e $custFile ]; then
|
||||||
|
echo "" > $custFile
|
||||||
|
fi
|
||||||
|
|
||||||
if [ ! ${#custom[@]} -eq 0 ]; then
|
printf -v "registry__${hash}" %s "$file"
|
||||||
echo "Generating $OUTPUT_FOLDER$database$suffix_custom ..."
|
echo "-- New custom sql: "$file
|
||||||
|
cat "$entry" >> $custFile
|
||||||
for d in "${custom[@]}"
|
fi
|
||||||
do
|
done
|
||||||
if [ ! -z $d ]; then
|
fi
|
||||||
for entry in "$d"/*.sql "$d"/**/*.sql
|
done
|
||||||
do
|
fi
|
||||||
if [[ ! -e $entry ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
file=$(basename "$entry")
|
|
||||||
hash=$($MD5_CMD "$entry")
|
|
||||||
hash="${hash%% *}" #remove file path
|
|
||||||
if [[ -z ${registry[$hash]} ]]; then
|
|
||||||
registry["$hash"]="$file"
|
|
||||||
echo "-- New custom sql: "$file
|
|
||||||
cat "$entry" >> $OUTPUT_FOLDER$database$suffix_custom".sql"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
mkdir -p $OUTPUT_FOLDER
|
|
||||||
|
|
||||||
for db in ${DATABASES[@]}
|
echo "===== STARTING PROCESS ====="
|
||||||
do
|
|
||||||
assemble "$db" $version".sql"
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "" > $reg_file
|
mkdir -p $OUTPUT_FOLDER
|
||||||
|
|
||||||
for i in "${!registry[@]}"
|
for db in ${DATABASES[@]}
|
||||||
do
|
do
|
||||||
echo "registry['"$i"']='"${registry[$i]}"'" >> "$reg_file"
|
assemble "$db" $version".sql" true true true
|
||||||
done
|
done
|
||||||
|
|
||||||
|
echo "" > $reg_file
|
||||||
|
|
||||||
|
for k in "${!registry__*}"
|
||||||
|
do
|
||||||
|
n=$k
|
||||||
|
echo "$k='${!n}'" >> "$reg_file"
|
||||||
|
done
|
||||||
|
|
||||||
echo "===== DONE ====="
|
echo "===== DONE ====="
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ OUTPUT_FOLDER="output/"
|
|||||||
|
|
||||||
# FULL DB
|
# FULL DB
|
||||||
DB_CHARACTERS_PATHS=(
|
DB_CHARACTERS_PATHS=(
|
||||||
$SRCPATH"/data/sql/base/characters"
|
$SRCPATH"/data/sql/base/db_characters"
|
||||||
)
|
)
|
||||||
|
|
||||||
DB_CHARACTERS_NAME="characters"
|
DB_CHARACTERS_NAME="characters"
|
||||||
@@ -103,7 +103,7 @@ DB_CHARACTERS_CONF="MYSQL_USER='root'; \
|
|||||||
"
|
"
|
||||||
|
|
||||||
DB_AUTH_PATHS=(
|
DB_AUTH_PATHS=(
|
||||||
$SRCPATH"/data/sql/base/auth/"
|
$SRCPATH"/data/sql/base/db_auth/"
|
||||||
)
|
)
|
||||||
|
|
||||||
DB_AUTH_NAME="auth"
|
DB_AUTH_NAME="auth"
|
||||||
@@ -114,7 +114,7 @@ DB_AUTH_CONF="MYSQL_USER='root'; \
|
|||||||
"
|
"
|
||||||
|
|
||||||
DB_WORLD_PATHS=(
|
DB_WORLD_PATHS=(
|
||||||
$SRCPATH"/data/sql/base/world/"
|
$SRCPATH"/data/sql/base/db_world/"
|
||||||
)
|
)
|
||||||
|
|
||||||
DB_WORLD_NAME="world"
|
DB_WORLD_NAME="world"
|
||||||
@@ -126,23 +126,26 @@ DB_WORLD_CONF="MYSQL_USER='root'; \
|
|||||||
|
|
||||||
# UPDATES
|
# UPDATES
|
||||||
DB_CHARACTERS_UPDATE_PATHS=(
|
DB_CHARACTERS_UPDATE_PATHS=(
|
||||||
$SRCPATH"/data/sql/updates/characters/"
|
$SRCPATH"/data/sql/updates/db_characters/"
|
||||||
)
|
)
|
||||||
|
|
||||||
DB_AUTH_UPDATE_PATHS=(
|
DB_AUTH_UPDATE_PATHS=(
|
||||||
$SRCPATH"/data/sql/updates/auth/"
|
$SRCPATH"/data/sql/updates/db_auth/"
|
||||||
)
|
)
|
||||||
|
|
||||||
DB_WORLD_UPDATE_PATHS=(
|
DB_WORLD_UPDATE_PATHS=(
|
||||||
$SRCPATH"/data/sql/updates/world/"
|
$SRCPATH"/data/sql/updates/db_world/"
|
||||||
)
|
)
|
||||||
|
|
||||||
# CUSTOM
|
# CUSTOM
|
||||||
DB_CHARACTERS_CUSTOM_PATHS=(
|
DB_CHARACTERS_CUSTOM_PATHS=(
|
||||||
|
$SRCPATH"/data/sql/custom/db_characters/"
|
||||||
)
|
)
|
||||||
|
|
||||||
DB_AUTH_CUSTOM_PATHS=(
|
DB_AUTH_CUSTOM_PATHS=(
|
||||||
|
$SRCPATH"/data/sql/custom/db_auth/"
|
||||||
)
|
)
|
||||||
|
|
||||||
DB_WORLD_CUSTOM_PATHS=(
|
DB_WORLD_CUSTOM_PATHS=(
|
||||||
|
$SRCPATH"/data/sql/custom/db_world/"
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user