summaryrefslogtreecommitdiff
path: root/bin/db_assembler
diff options
context:
space:
mode:
authorShinDarth <borzifrancesco@gmail.com>2016-08-07 14:55:21 +0200
committerShinDarth <borzifrancesco@gmail.com>2016-08-07 14:55:21 +0200
commita7a81f90b191aeabebc768ff18807abf6d655a0c (patch)
tree369c1e94a8270ac4a5ea60cfa14243bb6866f043 /bin/db_assembler
parentb96f058c175657aa85047f4200196bdd952c9888 (diff)
parent1fcfb9af5a0a8e4d308ec2ccda20adab99dce3ec (diff)
Merge branch 'master' into git
Diffstat (limited to 'bin/db_assembler')
-rw-r--r--bin/db_assembler/config.sh.dist49
-rwxr-xr-xbin/db_assembler/db_assembler.sh230
2 files changed, 125 insertions, 154 deletions
diff --git a/bin/db_assembler/config.sh.dist b/bin/db_assembler/config.sh.dist
deleted file mode 100644
index 87f6cbabf6..0000000000
--- a/bin/db_assembler/config.sh.dist
+++ /dev/null
@@ -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=(
-)
diff --git a/bin/db_assembler/db_assembler.sh b/bin/db_assembler/db_assembler.sh
index bbc75e7380..d5bf3fac1f 100755
--- a/bin/db_assembler/db_assembler.sh
+++ b/bin/db_assembler/db_assembler.sh
@@ -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}
+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
- version=$1
+ MD5_CMD="md5sum"
fi
-source "./config.sh.dist" # "hack" to avoid missing conf variables
+reg_file="$OUTPUT_FOLDER/.zzz_db_assembler_registry.sh"
-if [ -f "./config.sh" ]; then
- source "./config.sh" # should overwrite previous
+declare -A registry
+
+if [ -f "$reg_file" ]; then
+ source "$reg_file"
fi
echo "===== STARTING PROCESS ====="
-gtversion=""
function assemble() {
- database=$1
- start_sql=$2
-
- var_full="DB_"$database"_PATHS"
- full=${!var_full}
-
- var_updates="DB_"$database"_UPDATE_PATHS"
- updates=${!var_updates}
-
- var_custom="DB_"$database"_CUSTOM_PATHS"
- custom=${!var_custom}
-
-
- suffix_base=""
- suffix_upd=""
- suffix_custom=""
-
- if (( $ALL_IN_ONE == 0 )); then
- suffix_base="_base"
- fi;
-
- echo "" > $OUTPUT_FOLDER$database$suffix_base".sql"
-
-
- if [ ! ${#full[@]} -eq 0 ]; then
- echo "Generating $OUTPUT_FOLDER$database$suffix_based ..."
-
- 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
-
- if (( $ALL_IN_ONE == 0 )); then
- suffix_upd="_updates"
-
- echo "" > $OUTPUT_FOLDER$database$suffix_upd".sql"
- fi;
-
- 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
-
- cat "$entry" >> $OUTPUT_FOLDER$database$suffix_upd".sql"
- fi
- fi
- fi
- done
- done
- fi
-
- if (( $ALL_IN_ONE == 0 )); then
- suffix_custom="_custom"
-
- 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
+ database=$1
+ start_sql=$2
+
+ var_base="DB_"$database"_PATHS"
+ base=${!var_base}
+
+ var_updates="DB_"$database"_UPDATE_PATHS"
+ updates=${!var_updates}
+
+ var_custom="DB_"$database"_CUSTOM_PATHS"
+ custom=${!var_custom}
+
+
+ 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
+ echo "Generating $OUTPUT_FOLDER$database$suffix_base ..."
+
+ 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"
+
+ echo "" > $OUTPUT_FOLDER$database$suffix_upd".sql"
+ fi;
+
+ if [ ! ${#updates[@]} -eq 0 ]; then
+ echo "Generating $OUTPUT_FOLDER$database$suffix_upd ..."
+
+ for d in "${updates[@]}"
+ 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 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"
+
+ 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
+ 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
-echo "===== DONE ====="
+for i in "${!registry[@]}"
+do
+ echo "registry['"$i"']='"${registry[$i]}"'" >> "$reg_file"
+done
+echo "===== DONE ====="