summaryrefslogtreecommitdiff
path: root/bin/db_assembler
diff options
context:
space:
mode:
authorYehonal <yehonal.azeroth@gmail.com>2016-08-25 19:06:51 +0200
committerYehonal <yehonal.azeroth@gmail.com>2016-08-25 19:06:51 +0200
commit5b3c776f9c28b6a321663203d72930f003a4a118 (patch)
treed71dac9b39e1fe28ffca5b6f4ea3dd629f66b5c2 /bin/db_assembler
parentb211edb6c0a4d845c1e5f2173325f54cd7094884 (diff)
fixed and updated db_assembler to even support old bash v3 ( osx )
we're emulating associative array
Diffstat (limited to 'bin/db_assembler')
-rwxr-xr-xbin/db_assembler/db_assembler.sh212
1 files changed, 112 insertions, 100 deletions
diff --git a/bin/db_assembler/db_assembler.sh b/bin/db_assembler/db_assembler.sh
index c329b8db15..8eb9b7175c 100755
--- a/bin/db_assembler/db_assembler.sh
+++ b/bin/db_assembler/db_assembler.sh
@@ -19,135 +19,147 @@ else
MD5_CMD="md5sum"
fi
-reg_file="$OUTPUT_FOLDER/.zzz_db_assembler_registry.sh"
-
-registry=()
+reg_file="$OUTPUT_FOLDER/__db_assembler_registry"
if [ -f "$reg_file" ]; then
source "$reg_file"
fi
-echo "===== STARTING PROCESS ====="
-
-
function assemble() {
- database=$1
+ # to lowercase
+ database=${1,,}
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}
- var_updates="DB_"$database"_UPDATE_PATHS"
+ var_updates="DB_"$1"_UPDATE_PATHS"
updates=${!var_updates}
- var_custom="DB_"$database"_CUSTOM_PATHS"
+ var_custom="DB_"$1"_CUSTOM_PATHS"
custom=${!var_custom}
+ echo $updates
- suffix_base=""
- suffix_upd=""
- suffix_custom=""
- if (( $ALL_IN_ONE == 0 )); then
- suffix_base="_base"
- fi;
+ suffix_base="_base"
+ suffix_upd="_update"
+ suffix_custom="_custom"
- echo "" > $OUTPUT_FOLDER$database$suffix_base".sql"
+ curTime=`date +%Y_%m_%d_%H_%M_%S`
+ if [ $with_base = true ]; then
+ 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
+ if [ ! ${#base[@]} -eq 0 ]; then
+ echo "Generating $OUTPUT_FOLDER$database$suffix_base ..."
+
+ for d in "${base[@]}"
+ 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
- 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
+ if [ $with_updates = true ]; then
+ updFile=$OUTPUT_FOLDER$database$suffix_upd"_"$curTime".sql"
+
+ if [ ! ${#updates[@]} -eq 0 ]; then
+ echo "Generating $OUTPUT_FOLDER$database$suffix_upd ..."
+
+ for d in "${updates[@]}"
+ 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 $updFile ]; then
+ echo "" > $updFile
+ fi
+
+ printf -v "registry__${hash}" %s "$file"
+ echo "-- New update sql: "$file
+ cat "$entry" >> $updFile
+ fi
+ done
+ fi
+ done
+ fi
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
+ if [ $with_custom = true ]; then
+ custFile=$OUTPUT_FOLDER$database$suffix_custom"_"$curTime".sql"
+
+ if [ ! ${#custom[@]} -eq 0 ]; then
+ 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
+
+ printf -v "registry__${hash}" %s "$file"
+ echo "-- New custom sql: "$file
+ cat "$entry" >> $custFile
+ fi
+ done
+ fi
+ done
+ fi
fi
}
-mkdir -p $OUTPUT_FOLDER
-for db in ${DATABASES[@]}
-do
- assemble "$db" $version".sql"
-done
+echo "===== STARTING PROCESS ====="
+
+ mkdir -p $OUTPUT_FOLDER
+
+ for db in ${DATABASES[@]}
+ do
+ assemble "$db" $version".sql" true true true
+ done
-echo "" > $reg_file
+ echo "" > $reg_file
-for i in "${!registry[@]}"
-do
- echo "registry['"$i"']='"${registry[$i]}"'" >> "$reg_file"
-done
+ for k in "${!registry__*}"
+ do
+ n=$k
+ echo "$k='${!n}'" >> "$reg_file"
+ done
echo "===== DONE ====="