add new tag #NOW# to be able to use current time in sql statements, used #PFX# tag...
[brisk.git] / sql / builder.sh
index da05960..e71d26e 100755 (executable)
@@ -3,11 +3,12 @@
 #
 MATCH_DROP='^DROP.*([^-]...|.[^-]..|..[^M].|...[^F])$|^ALTER TABLE.* DROP .*([^-]...|.[^-]..|..[^M].|...[^F])$|^DELETE .*([^-]...|.[^-]..|..[^M].|...[^F])$|--MB$'
 
+DATECUR="$(date +%s)"
 
 #  functions
 usage () {
     echo " USAGE"
-    echo "   ./builder <command> [-d|--dryrun] [-a|--allfiles] [-s|--short] ..."
+    echo "   ./builder <command> [-d|--dryrun] [-a|-p|--allfiles|--devfiles] [-s|--short] ..."
     echo "   ./builder <-h|--help|help>"
     echo "   commands are:"
     echo "       create"
@@ -37,25 +38,23 @@ sqlexe () {
     sht=$1
 
     if [ "$SHORT" = "y" ];  then
-        sed "s/#PFX#/$PFX/g" | psql -a $pg_args 2>&1 | egrep 'ERROR|^-- MESG'
+        sed "s/#PFX#/$PFX/g;s/#NOW#/$DATECUR/g" | psql -a $pg_args 2>&1 | egrep 'ERROR|^-- MESG|^-- FILE '
     else
-        sed "s/#PFX#/$PFX/g" | psql -a $pg_args
+        sed "s/#PFX#/$PFX/g;s/#NOW#/$DATECUR/g" | psql -a $pg_args
     fi
 
     return 0
 }
 
 one_or_all() {
-    if [ "$ALL_FILES" = "y" ]; then
-        sfx_files='*'
-    else
-        sfx_files='*.sql'
-    fi
-
-    if [ "$1" = "" ]; then
-        cat sql.d/$sfx_files
-    else
+    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
 }
 
@@ -76,7 +75,10 @@ while [ $# -gt 0 ]; do
             }
             ;;
         -a|--allfiles)
-            ALL_FILES=y
+            TYPE_FILES=a
+            ;;
+        -p|--devfiles)
+            TYPE_FILES=d
             ;;
         -s|--short)
             SHORT=y