mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2025-11-29 17:38:24 +08:00
[BASH] improved db assembler with more effective md5 check
This commit is contained in:
@@ -8,32 +8,23 @@ if [ -f "./config.sh" ]; then
|
|||||||
source "./config.sh" # should overwrite previous
|
source "./config.sh" # should overwrite previous
|
||||||
fi
|
fi
|
||||||
|
|
||||||
version_marker="$OUTPUT_FOLDER/ZZZ_latest_version_"
|
unamestr=`uname`
|
||||||
|
if [[ "$unamestr" == 'Darwin' ]]; then
|
||||||
version="0000_00_00_00"
|
MD5_CMD="md5"
|
||||||
for entry in "$version_marker"*
|
|
||||||
do
|
|
||||||
if [ -f "$entry" ]; then
|
|
||||||
version=${entry#$version_marker}
|
|
||||||
fi
|
|
||||||
|
|
||||||
break
|
|
||||||
done
|
|
||||||
|
|
||||||
#
|
|
||||||
# You can pass latest version as first argument of this script
|
|
||||||
#
|
|
||||||
if [ -z "$1" ]; then
|
|
||||||
read -p "Enter latest sql version ( leave blank to use : $version )" $rev
|
|
||||||
version=${rev:-$version}
|
|
||||||
else
|
else
|
||||||
version=$1
|
MD5_CMD="md5sum"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
reg_file="$OUTPUT_FOLDER/.zzz_db_assembler_registry.sh"
|
||||||
|
|
||||||
|
declare -A registry
|
||||||
|
|
||||||
|
if [ -f "$reg_file" ]; then
|
||||||
|
source "$reg_file"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "===== STARTING PROCESS ====="
|
echo "===== STARTING PROCESS ====="
|
||||||
|
|
||||||
gtversion=""
|
|
||||||
|
|
||||||
function assemble() {
|
function assemble() {
|
||||||
database=$1
|
database=$1
|
||||||
@@ -68,7 +59,7 @@ function assemble() {
|
|||||||
if [ ! -z $d ]; then
|
if [ ! -z $d ]; then
|
||||||
for entry in "$d"/*.sql "$d"/**/*.sql
|
for entry in "$d"/*.sql "$d"/**/*.sql
|
||||||
do
|
do
|
||||||
if [ -e $entry ]; then
|
if [[ -e $entry ]]; then
|
||||||
cat "$entry" >> $OUTPUT_FOLDER$database$suffix_base".sql"
|
cat "$entry" >> $OUTPUT_FOLDER$database$suffix_base".sql"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -87,22 +78,23 @@ function assemble() {
|
|||||||
|
|
||||||
for d in "${updates[@]}"
|
for d in "${updates[@]}"
|
||||||
do
|
do
|
||||||
|
if [ ! -z $d ]; then
|
||||||
for entry in "$d"/*.sql "$d"/**/*.sql
|
for entry in "$d"/*.sql "$d"/**/*.sql
|
||||||
do
|
do
|
||||||
if [ ! -z $d ]; then
|
if [[ ! -e $entry ]]; then
|
||||||
file=$(basename $entry)
|
continue
|
||||||
if [[ "$file" > "$start_sql" ]]
|
|
||||||
then
|
|
||||||
if [ -e $entry ]; then
|
|
||||||
if [[ "$gtversion" < "$file" ]]; then
|
|
||||||
gtversion=$file
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
file=$(basename "$entry")
|
||||||
|
hash=$($MD5_CMD "$entry")
|
||||||
|
hash="${hash%% *}" #remove file path
|
||||||
|
if [[ -z ${registry[$hash]} ]]; then
|
||||||
|
registry["$hash"]="$file"
|
||||||
|
echo "-- New update sql: "$file
|
||||||
cat "$entry" >> $OUTPUT_FOLDER$database$suffix_upd".sql"
|
cat "$entry" >> $OUTPUT_FOLDER$database$suffix_upd".sql"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -122,7 +114,16 @@ function assemble() {
|
|||||||
if [ ! -z $d ]; then
|
if [ ! -z $d ]; then
|
||||||
for entry in "$d"/*.sql "$d"/**/*.sql
|
for entry in "$d"/*.sql "$d"/**/*.sql
|
||||||
do
|
do
|
||||||
if [ -e $entry ]; then
|
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"
|
cat "$entry" >> $OUTPUT_FOLDER$database$suffix_custom".sql"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -138,12 +139,11 @@ do
|
|||||||
assemble "$db" $version".sql"
|
assemble "$db" $version".sql"
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ ! -z $gtversion ]; then
|
echo "" > $reg_file
|
||||||
if [ -f $version_marker* ]; then
|
|
||||||
rm $version_marker*
|
for i in "${!registry[@]}"
|
||||||
fi
|
do
|
||||||
echo $gtversion > $OUTPUT_FOLDER"ZZZ_latest_version_"${gtversion%.*}
|
echo "registry['"$i"']='"${registry[$i]}"'" >> "$reg_file"
|
||||||
fi
|
done
|
||||||
|
|
||||||
echo "===== DONE ====="
|
echo "===== DONE ====="
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user