X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=sql%2Fbuilder.sh;h=db1dcd182e8e8483a362be13a2788a897f079086;hb=HEAD;hp=e71d26e21f95c88d2fee2d5f0226f0bdb5c6dd4c;hpb=af5d80281ca7394f3365bbbeaabbe5d471ebe310;p=brisk.git diff --git a/sql/builder.sh b/sql/builder.sh index e71d26e..db1dcd1 100755 --- a/sql/builder.sh +++ b/sql/builder.sh @@ -7,9 +7,10 @@ DATECUR="$(date +%s)" # functions usage () { + local _v echo " USAGE" - echo " ./builder [-d|--dryrun] [-a|-p|--allfiles|--devfiles] [-s|--short] ..." - echo " ./builder <-h|--help|help>" + echo " $0 [-c|--config ] [-d|--dryrun] [<-a|--allfiles>|<-p|--devfiles>] [-s|--short] ..." + echo " $0 [-c|--config ] <-h|--help|help>" echo " commands are:" echo " create" echo " destroy" @@ -29,6 +30,15 @@ usage () { echo " [$MATCH_DROP]" echo "NOTE: to invert normal 'del' rules add '--MF' (move forward) suffix to each line" echo " to invert normal 'add' rules add '--MB' (move backward) suffix to each line" + echo + echo "ENVIRONMENT" + for _v in \ +apache_conf card_hand players_n tables_n tables_appr_n tables_auth_n tables_cert_n \ +brisk_auth_conf brisk_debug web_path ftok_path proxy_path legal_path prefix_path \ +brisk_conf usock_path sys_user web_only test_add \ +DBHOST DBUSER DBPORT DBBASE DBPASS PFX ; do + echo " $_v=${!_v}" + done exit $1 } @@ -47,26 +57,41 @@ sqlexe () { } one_or_all() { - if [ "$1" ]; then - cat "$1" - elif [ "$TYPE_FILES" = "a" ]; then - cat sql.d/[0-9]* - elif [ "$TYPE_FILES" = "d" ]; then - cat sql.d/[0-9]*.{sql,devel} - else - cat sql.d/[0-9]*.sql - fi + local old_ifs + + old_ifs="$IFS" + IFS=" " + for fil in $( + if [ "$1" ]; then + echo "$1" + elif [ "$TYPE_FILES" = "a" ]; then + find sql.d/ -name '[0-9]*' -type f | sort -n | tr '\n' ' ' + elif [ "$TYPE_FILES" = "d" ]; then + find sql.d/ -name '[0-9]*' | egrep '.*_devel.sql$|^[^_]+.sql$' | sort -n | tr '\n' ' ' + else + find sql.d/ -name '[0-9]*' | egrep '^[^_]+.sql$' | sort -n | tr '\n' ' ' + fi); do + echo "-- FILE BEG: $fil" + cat "$fil" + echo "-- FILE END: $fil" + done + IFS="$old_ifs" } # # MAIN # - -CMD=$1 -shift +if [ "${1:0:1}" != "-" ]; then + CMD=$1 + shift +fi while [ $# -gt 0 ]; do case $1 in + -c|--config) + CONFIG_FILE=$2 + shift + ;; -d|--dryrun) DRY_RUN=y psql () { @@ -83,6 +108,9 @@ while [ $# -gt 0 ]; do -s|--short) SHORT=y ;; + -h|--help|help) + CMD=help + ;; *) break ;; @@ -107,6 +135,10 @@ if [ -f $HOME/.brisk_install ]; then source $HOME/.brisk_install fi +if [ -f "$CONFIG_FILE" ]; then + source "$CONFIG_FILE" +fi + pg_args="" test "$DBHOST" != "" && pg_args="$pg_args -h $DBHOST" test "$DBUSER" != "" && pg_args="$pg_args -U $DBUSER" @@ -125,13 +157,13 @@ case $CMD in su root -c "su postgres -c \"dropdb $DBBASE && dropuser $DBUSER\"" ;; "clean") - ( echo "-- MESG: clean start" ; one_or_all $2 | egrep "$MATCH_DROP" | tac ; echo "-- MESG: clean end" ; ) | sqlexe + ( echo "-- MESG: clean start" ; one_or_all $2 | egrep "$MATCH_DROP|^-- MESG|^-- FILE " | tac ; echo "-- MESG: clean end" ; ) | sqlexe ;; "build") ( echo "-- MESG: build start" ; one_or_all $2 | egrep -v "$MATCH_DROP" ; echo "-- MESG: build end" ; ) | sqlexe ;; "rebuild") - ( echo "-- MESG: clean start" ; one_or_all $2 | egrep "$MATCH_DROP" | tac ; echo "-- MESG: clean end" ; \ + ( echo "-- MESG: clean start" ; one_or_all $2 | egrep "$MATCH_DROP|^-- MESG|^-- FILE " | tac ; echo "-- MESG: clean end" ; \ echo "-- MESG: build start" ; one_or_all $2 | egrep -v "$MATCH_DROP" ; echo "-- MESG: build end" ; ) \ | sqlexe ;; @@ -160,10 +192,10 @@ case $CMD in ( echo "-- MESG: add start" ; cat "$@" | egrep -v "$MATCH_DROP" ; echo "-- MESG: add end" ; ) | sqlexe ;; "del") - ( echo "-- MESG: del start" ; cat "$@" | egrep "$MATCH_DROP" | tac ; echo "-- MESG: del end" ; ) | sqlexe + ( echo "-- MESG: del start" ; cat "$@" | egrep "$MATCH_DROP|^-- MESG|^-- FILE " | tac ; echo "-- MESG: del end" ; ) | sqlexe ;; "res") - ( echo "-- MESG: res start" ; cat "$@" | egrep "$MATCH_DROP" | tac ; cat "$@" | egrep -v "$MATCH_DROP" ; echo "-- MESG: del end" ; ) | sqlexe + ( echo "-- MESG: res start" ; cat "$@" | egrep "$MATCH_DROP|^-- MESG|^-- FILE " | tac ; cat "$@" | egrep -v "$MATCH_DROP" ; echo "-- MESG: del end" ; ) | sqlexe ;; "help"|"-h"|"--help") usage 0