diff options
Diffstat (limited to 'bin/db_assembler/db_assembler.sh')
-rwxr-xr-x | bin/db_assembler/db_assembler.sh | 240 |
1 files changed, 120 insertions, 120 deletions
diff --git a/bin/db_assembler/db_assembler.sh b/bin/db_assembler/db_assembler.sh index 6993c8efa6..1716b71eb9 100755 --- a/bin/db_assembler/db_assembler.sh +++ b/bin/db_assembler/db_assembler.sh @@ -8,142 +8,142 @@ if [ -f "./config.sh" ]; then source "./config.sh" # should overwrite previous fi -version_marker="$OUTPUT_FOLDER/ZZZ_latest_version_" +unamestr=`uname` +if [[ "$unamestr" == 'Darwin' ]]; then + MD5_CMD="md5" +else + MD5_CMD="md5sum" +fi -version="0000_00_00_00" -for entry in "$version_marker"* -do - if [ -f "$entry" ]; then - version=${entry#$version_marker} - fi +reg_file="$OUTPUT_FOLDER/.zzz_db_assembler_registry.sh" - break -done +declare -A registry -# -# 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 - version=$1 +if [ -f "$reg_file" ]; then + source "$reg_file" fi - echo "===== STARTING PROCESS =====" -gtversion="" function assemble() { - 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 - 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 -if [ ! -z $gtversion ]; then - if [ -f $version_marker* ]; then - rm $version_marker* - fi - echo $gtversion > $OUTPUT_FOLDER"ZZZ_latest_version_"${gtversion%.*} -fi +echo "" > $reg_file -echo "===== DONE =====" +for i in "${!registry[@]}" +do + echo "registry['"$i"']='"${registry[$i]}"'" >> "$reg_file" +done +echo "===== DONE =====" |