221bd870b9b6715e63c2a86d401ab5f0cc81f567
[brisk.git] / builder.sh
1 #! /bin/bash
2
3 #
4 #  all this part is from mopshop and we will use it to construct the brisk database
5 #
6
7 if [ -f $HOME/.db.conf ]; then
8     source $HOME/.db.conf
9 else
10     DBHOST=127.0.0.1
11     DBUSER=brisk
12     DBBASE=brisk
13     DBPASS=briskpass
14     PFX="bsk_"
15 fi
16
17 if [ -f $HOME/.brisk_install ]; then
18     source $HOME/.brisk_install
19 fi
20
21
22 sqlexe () {
23     local sht
24     sht=$1
25     
26     if [ $sht -eq 1 ];  then 
27         sed "s/#PFX#/$PFX/g" | psql -a -h $DBHOST -U $DBUSER $DBBASE 2>&1 | egrep 'ERROR|^-- MESG' 
28     else
29         sed "s/#PFX#/$PFX/g" | psql -a -h $DBHOST -U $DBUSER $DBBASE
30     fi
31
32     return 0
33 }
34
35 one_or_all() {
36     if [ "$1" = "" ]; then
37         cat sql.d/*.sql
38     else
39         cat "$1"
40     fi
41 }
42
43 #
44 # MAIN
45 #
46 sht=0
47
48 if [ "$1" = "-s" ]; then
49     shift
50     sht=1
51 fi
52
53 if [ "$1" = "create" ]; then
54     echo "su root" 
55     su root -c "su postgres -c \"echo \\\"DBUser passwd: $DBPASS\\\" ; createuser -S -D -R -P $DBUSER && createdb -E utf8 -O $DBUSER $DBBASE\"" 
56 elif [ "$1" = "destroy" ]; then
57     echo "su root" 
58     su root -c "su postgres -c \"dropdb $DBBASE && dropuser $DBUSER\"" 
59 elif [ "$1" = "clean" ]; then
60     ( echo "-- MESG: clean start" ; one_or_all $2 | grep -i '^drop' | tac ; echo "-- MESG: clean end" ;   ) | sqlexe $sht
61 elif [ "$1" = "build" ]; then
62     ( echo "-- MESG: build start" ; one_or_all $2 | grep -iv '^drop' ; echo "-- MESG: build end" ;   ) | sqlexe $sht
63 elif [ "$1" = "rebuild" ]; then
64     ( echo "-- MESG: clean start" ; one_or_all $2 | grep -i '^drop' | tac ; echo "-- MESG: clean end" ; \
65         echo "-- MESG: build start" ; one_or_all $2 | grep -iv '^drop' ; echo "-- MESG: build end" ;   ) \
66         | sqlexe $sht
67 elif [ "$1" = "psql" ]; then
68    psql -h $DBHOST -U $DBUSER $DBBASE $@
69 elif [ "$1" = "piped" ]; then
70    psql -h $DBHOST -U $DBUSER $DBBASE -t -q -A -F '|' $@
71 elif [ "$1" = "dump" ]; then
72     if [ $# -eq 1 ]; then
73         pg_dump -a --inserts -h $DBHOST -U $DBUSER $DBBASE
74     else
75         pg_dump -a --inserts -h $DBHOST -U $DBUSER $DBBASE > $2
76     fi
77 elif [ "$1" = "dumpall" ]; then
78     if [ $# -eq 1 ]; then
79         pg_dump -h $DBHOST -U $DBUSER $DBBASE
80     else
81         pg_dump -h $DBHOST -U $DBUSER $DBBASE > $2
82     fi
83 elif [ "$1" = "add" ]; then
84     cat "$2" | psql -h $DBHOST -U $DBUSER $DBBASE
85 else
86     echo " USAGE"
87     echo "   ./builder create"
88     echo "   ./builder destroy"
89     echo "   ./builder clean"
90     echo "   ./builder build"
91     echo "   ./builder rebuild"
92     echo "   ./builder psql"
93     echo "   ./builder piped"
94     echo "   ./builder add <filesql>"
95     echo "   ./builder dump [dumpfile]"
96     echo "   ./builder dumpall [dumpfile]"
97     echo "   ./builder all"
98     echo "   ./builder help"
99 fi