diff options
author | ShinDarth <borzifrancesco@gmail.com> | 2016-08-07 14:55:21 +0200 |
---|---|---|
committer | ShinDarth <borzifrancesco@gmail.com> | 2016-08-07 14:55:21 +0200 |
commit | a7a81f90b191aeabebc768ff18807abf6d655a0c (patch) | |
tree | 369c1e94a8270ac4a5ea60cfa14243bb6866f043 /bin/db_assembler/db_assembler.sh | |
parent | b96f058c175657aa85047f4200196bdd952c9888 (diff) | |
parent | 1fcfb9af5a0a8e4d308ec2ccda20adab99dce3ec (diff) |
Merge branch 'master' into git
Diffstat (limited to 'bin/db_assembler/db_assembler.sh')
-rwxr-xr-x | bin/db_assembler/db_assembler.sh | 230 |
1 files changed, 125 insertions, 105 deletions
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 =====" |