Merge branch 'master' into git

This commit is contained in:
ShinDarth
2016-08-07 14:55:21 +02:00
84 changed files with 1531 additions and 680 deletions

View File

@@ -1,49 +0,0 @@
#!/bin/bash
# 0 if you want create an sql for each kind of following categories
# 1 to create a single big file to import ( suggested for new installations )
ALL_IN_ONE=0
DATABASES=(
"AUTH"
"CHARACTERS"
"WORLD"
)
OUTPUT_FOLDER="output/"
# FULL DB
DB_CHARACTERS_PATHS=(
$SRCPATH"/data/sql/databases/characters.sql"
)
DB_AUTH_PATHS=(
$SRCPATH"/data/sql/databases/auth.sql"
)
DB_WORLD_PATHS=(
$SRCPATH"/data/sql/databases/world.sql"
)
# UPDATES
DB_CHARACTERS_UPDATE_PATHS=(
$SRCPATH"/data/sql/updates/characters/"
)
DB_AUTH_UPDATE_PATHS=(
$SRCPATH"/data/sql/updates/auth/"
)
DB_WORLD_UPDATE_PATHS=(
$SRCPATH"/data/sql/updates/world/"
)
# CUSTOM
DB_CHARACTERS_CUSTOM_PATHS=(
)
DB_AUTH_CUSTOM_PATHS=(
)
DB_WORLD_CUSTOM_PATHS=(
)

View File

@@ -7,128 +7,148 @@ else
SRCPATH=$(readlink -f "../../")
fi
#
# 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 : 0000_00_00_00 )" $version
version=${version:-0000_00_00_00}
else
version=$1
fi
source "./config.sh.dist" # "hack" to avoid missing conf variables
source $SRCPATH"/bin/bash_shared/includes.sh"
if [ -f "./config.sh" ]; then
source "./config.sh" # should overwrite previous
fi
unamestr=`uname`
if [[ "$unamestr" == 'Darwin' ]]; then
MD5_CMD="md5"
else
MD5_CMD="md5sum"
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 ====="
gtversion=""
function assemble() {
database=$1
start_sql=$2
database=$1
start_sql=$2
var_full="DB_"$database"_PATHS"
full=${!var_full}
var_base="DB_"$database"_PATHS"
base=${!var_base}
var_updates="DB_"$database"_UPDATE_PATHS"
updates=${!var_updates}
var_updates="DB_"$database"_UPDATE_PATHS"
updates=${!var_updates}
var_custom="DB_"$database"_CUSTOM_PATHS"
custom=${!var_custom}
var_custom="DB_"$database"_CUSTOM_PATHS"
custom=${!var_custom}
suffix_base=""
suffix_upd=""
suffix_custom=""
suffix_base=""
suffix_upd=""
suffix_custom=""
if (( $ALL_IN_ONE == 0 )); then
suffix_base="_base"
fi;
if (( $ALL_IN_ONE == 0 )); then
suffix_base="_base"
fi;
echo "" > $OUTPUT_FOLDER$database$suffix_base".sql"
echo "" > $OUTPUT_FOLDER$database$suffix_base".sql"
if [ ! ${#full[@]} -eq 0 ]; then
echo "Generating $OUTPUT_FOLDER$database$suffix_based ..."
if [ ! ${#base[@]} -eq 0 ]; then
echo "Generating $OUTPUT_FOLDER$database$suffix_base ..."
for entry in "${full[@]}"
do
if [ ! -z $entry ]; then
if [ -e $entry ]; then
cat "$entry" >> $OUTPUT_FOLDER$database$suffix_base".sql"
fi
fi
done
fi
for d in "${base[@]}"
do
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
if (( $ALL_IN_ONE == 0 )); then
suffix_upd="_updates"
if (( $ALL_IN_ONE == 0 )); then
suffix_upd="_updates"
echo "" > $OUTPUT_FOLDER$database$suffix_upd".sql"
fi;
echo "" > $OUTPUT_FOLDER$database$suffix_upd".sql"
fi;
if [ ! ${#updates[@]} -eq 0 ]; then
echo "Generating $OUTPUT_FOLDER$database$suffix_upd ..."
if [ ! ${#updates[@]} -eq 0 ]; then
echo "Generating $OUTPUT_FOLDER$database$suffix_upd ..."
for d in "${updates[@]}"
do
for entry in "$d"/*.sql "$d"/**/*.sql
do
if [ ! -z $d ]; then
file=$(basename $entry)
if [[ "$file" > "$start_sql" ]]
then
if [ -e $entry ]; then
if [[ "$gtversion" < "$file" ]]; then
gtversion=$file
fi
for d in "${updates[@]}"
do
if [ ! -z $d ]; then
for entry in "$d"/*.sql "$d"/**/*.sql
do
if [[ ! -e $entry ]]; then
continue
fi
cat "$entry" >> $OUTPUT_FOLDER$database$suffix_upd".sql"
fi
fi
fi
done
done
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"
fi
done
fi
done
fi
if (( $ALL_IN_ONE == 0 )); then
suffix_custom="_custom"
if (( $ALL_IN_ONE == 0 )); then
suffix_custom="_custom"
echo "" > $OUTPUT_FOLDER$database$suffix_custom".sql"
fi;
echo "" > $OUTPUT_FOLDER$database$suffix_custom".sql"
fi;
if [ ! ${#custom[@]} -eq 0 ]; then
echo "Generating $OUTPUT_FOLDER$database$suffix_custom ..."
for d in "${custom[@]}"
do
if [ ! -z $d ]; then
for entry in "$d"/*.sql "$d"/**/*.sql
do
if [ -e $entry ]; then
cat "$entry" >> $OUTPUT_FOLDER$database$suffix_custom".sql"
fi
done
fi
done
fi
if [ ! ${#custom[@]} -eq 0 ]; then
echo "Generating $OUTPUT_FOLDER$database$suffix_custom ..."
for d in "${custom[@]}"
do
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
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
}
mkdir -p $OUTPUT_FOLDER
for db in ${DATABASES[@]}
do
assemble "$db" $version".sql"
assemble "$db" $version".sql"
done
rm $OUTPUT_FOLDER"ZZZ_latest_version_"*
echo $gtversion > $OUTPUT_FOLDER"ZZZ_latest_version_"${gtversion%.*}
echo "" > $reg_file
for i in "${!registry[@]}"
do
echo "registry['"$i"']='"${registry[$i]}"'" >> "$reg_file"
done
echo "===== DONE ====="