X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=sql%2Fbuilder.sh;h=da0596020bbbbf317cf07a0a89264f14c799421e;hb=9f07ddf9074aea6d8c2602700279416358fbb399;hp=4acc242f7555aa81d3fe7e8035da8882e1fa4ba0;hpb=e19ba01834625d96835b3adf385a1defc48f4166;p=brisk.git diff --git a/sql/builder.sh b/sql/builder.sh index 4acc242..da05960 100755 --- a/sql/builder.sh +++ b/sql/builder.sh @@ -1,6 +1,9 @@ #! /bin/bash - +# set -x # +MATCH_DROP='^DROP.*([^-]...|.[^-]..|..[^M].|...[^F])$|^ALTER TABLE.* DROP .*([^-]...|.[^-]..|..[^M].|...[^F])$|^DELETE .*([^-]...|.[^-]..|..[^M].|...[^F])$|--MB$' + + # functions usage () { echo " USAGE" @@ -14,10 +17,18 @@ usage () { echo " rebuild" echo " psql" echo " piped" - echo " add " + echo " add [ [..]]" + echo " del [ [..]]" + echo " res [ [..]]" echo " dump [dumpfile]" echo " dumpall [dumpfile]" echo " all" + echo + echo "The match rule for clean lines is:" + 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" + exit $1 } @@ -100,7 +111,6 @@ test "$DBUSER" != "" && pg_args="$pg_args -U $DBUSER" test "$DBPORT" != "" && pg_args="$pg_args -p $DBPORT" test "$DBBASE" != "" && pg_args="$pg_args $DBBASE" -MATCH_DROP='^drop|^alter table.* drop ' case $CMD in "create") @@ -113,14 +123,14 @@ case $CMD in su root -c "su postgres -c \"dropdb $DBBASE && dropuser $DBUSER\"" ;; "clean") - ( echo "-- MESG: clean start" ; one_or_all $2 | egrep -i "$MATCH_DROP" | tac ; echo "-- MESG: clean end" ; ) | sqlexe + ( echo "-- MESG: clean start" ; one_or_all $2 | egrep "$MATCH_DROP" | tac ; echo "-- MESG: clean end" ; ) | sqlexe ;; "build") - ( echo "-- MESG: build start" ; one_or_all $2 | egrep -iv "$MATCH_DROP" ; echo "-- MESG: build end" ; ) | sqlexe + ( 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 -i "$MATCH_DROP" | tac ; echo "-- MESG: clean end" ; \ - echo "-- MESG: build start" ; one_or_all $2 | egrep -iv "$MATCH_DROP" ; echo "-- MESG: build end" ; ) \ + ( echo "-- MESG: clean start" ; one_or_all $2 | egrep "$MATCH_DROP" | tac ; echo "-- MESG: clean end" ; \ + echo "-- MESG: build start" ; one_or_all $2 | egrep -v "$MATCH_DROP" ; echo "-- MESG: build end" ; ) \ | sqlexe ;; "psql") @@ -145,7 +155,13 @@ case $CMD in fi ;; "add") - cat "$1" | sqlexe + ( 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 + ;; + "res") + ( echo "-- MESG: res start" ; cat "$@" | egrep "$MATCH_DROP" | tac ; cat "$@" | egrep -v "$MATCH_DROP" ; echo "-- MESG: del end" ; ) | sqlexe ;; "help"|"-h"|"--help") usage 0 @@ -155,4 +171,4 @@ case $CMD in ;; esac -exit 0 \ No newline at end of file +exit 0