File: postinst

package info (click to toggle)
opendb 0.81p18-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 4,716 kB
  • ctags: 6,787
  • sloc: php: 50,213; sql: 3,098; sh: 272; makefile: 54; xml: 48
file content (193 lines) | stat: -rw-r--r-- 7,561 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
#! /bin/sh 
# postinst for opendb

set -e

# source the debconf wrapper functions
. /usr/share/debconf/confmodule

db_version 2.0 || [ $? -lt 30 ]

case "$1" in
   configure)
      
      db_get opendb/webserver_type
      webservers="$RET"
      restart=""

      for webserver in $webservers; do
          webserver=${webserver%,}
          test -x /usr/sbin/$webserver || continue

          case "$webserver" in
              apache|apache-perl|apache-ssl)
                  if [ -x /usr/sbin/modules-config ]; then
                      if [ -f /usr/lib/apache/1.3/libphp4.so ]; then
                          if ! grep -qs "^LoadModule php4_module " /etc/$webserver/modules.conf; then
                              modules-config $webserver enable mod_php4
                          fi
                      elif [ -f /usr/lib/apache/1.3/libphp3.so ]; then
                          if ! grep -qs "^LoadModule php3_module " /etc/$webserver/modules.conf; then
                              modules-config $webserver enable mod_php3
                          fi
                      else
                          if [ -f /usr/lib/apache/1.3/mod_actions.so ]; then
                              if ! grep -qs "^LoadModule action_module " /etc/$webserver/modules.conf; then
                                  modules-config $webserver enable mod_actions
                              fi
                          fi
                          if [ -f /usr/lib/apache/1.3/mod_cgi.so ]; then
                              if ! grep -qs "^LoadModule cgi_module " /etc/$webserver/modules.conf; then
                                  modules-config $webserver enable mod_cgi
                              fi
                          fi
                      fi
                  fi
                  if grep -qs "^Include /etc/opendb/apache.conf" /etc/$webserver/httpd.conf; then
                      mv -f /etc/$webserver/httpd.conf /etc/$webserver/httpd.conf.old.opendb
                      grep -v "^Include /etc/opendb/apache.conf" /etc/$webserver/httpd.conf.old.opendb \
                          > /etc/$webserver/httpd.conf
                  fi
                  if ! grep -qs "^Include /etc/$webserver/conf.d" /etc/$webserver/httpd.conf; then
                      cp -f /etc/$webserver/httpd.conf /etc/$webserver/httpd.conf.old.opendb
                      echo "Include /etc/$webserver/conf.d" >> /etc/$webserver/httpd.conf
                  fi
                  if [ -f /etc/$webserver/httpd.conf.old.opendb ]; then
                      mv -f /etc/$webserver/httpd.conf.old.opendb /etc/$webserver/httpd.conf.old
                  fi
                  mkdir -p /etc/$webserver/conf.d
                  ;;
              apache2)
                  if [ -d /etc/$webserver/mods-enabled ]; then
                      if [ ! -f /etc/$webserver/mods-enabled/actions.load -a ! -h /etc/$webserver/mods-enabled/actions.load ]; then
                          ln -s /etc/$webserver/mods-available/actions.load /etc/$webserver/mods-enabled/actions.load
                      fi
                      if [ -f /etc/apache2/mods-available/php4.load ]; then
                          if [ ! -f /etc/$webserver/mods-enabled/php4.load -a ! -h /etc/$webserver/mods-enabled/php4.load ]; then
                              ln -s /etc/$webserver/mods-available/php4.load /etc/$webserver/mods-enabled/php4.load
                          fi
                      else
                          if [ ! -f /etc/$webserver/mods-enabled/cgi.load -a ! -h /etc/$webserver/mods-enabled/cgi.load ]; then
                              ln -s /etc/$webserver/mods-available/cgi.load /etc/$webserver/mods-enabled/cgi.load
                          fi
                      fi
                  fi
                  ;;
          esac

          case "$webserver" in
              apache|apache-perl|apache-ssl|apache2)
                  if [ ! -f /etc/$webserver/conf.d/opendb -a ! -h /etc/$webserver/conf.d/opendb ]; then
                      ln -s /etc/opendb/apache.conf /etc/$webserver/conf.d/opendb
                  fi
                  db_reset opendb/restart-webserver || true
                  db_subst opendb/restart-webserver webserver "$webserver"
                  db_input high opendb/restart-webserver || true
                  db_go
                  db_get opendb/restart-webserver
                  if [ "$RET" = "true" ]; then
                      restart="$restart $webserver"
                  fi
                  ;;
          esac
      done

      for webserver in $restart; do
          webserver=${webserver%,}
          if [ -x /usr/sbin/invoke-rc.d ]; then
              invoke-rc.d $webserver restart
          else
              /etc/init.d/$webserver restart
          fi
      done
      
      chmod 640 /etc/opendb/opendb.conf

      db_get opendb/admin_name
      admname="$RET"

      db_get opendb/admin_email
      admemail="$RET"
      
      db_get opendb/mysql/configure 
      if [ "$RET" = true ]; then
         
         # get the answers to our questions
         db_get opendb/mysql/dbserver
         dbserver=$RET
         db_get opendb/mysql/dbadmin
         dbadmin=$RET
         db_get opendb/mysql/dbadmpass
         dbadmpass=$RET
         db_reset opendb/mysql/dbadmpass
         db_get opendb/mysql/dbname
         dbname=$RET
         db_get opendb/mysql/dbuser
         dbuser=$RET
         db_get opendb/mysql/dbpass
         dbpass=$RET
         
         # create the database
         . /usr/share/wwwconfig-common/mysql-createdb.sh
                           
         # add a user
         if [ "$dbserver" = "localhost" -o "$dbserver" = "127.0.0.1" ]; then
            dballow="localhost"
         else
            dballow="%"
         fi
         
         . /usr/share/wwwconfig-common/mysql-createuser.sh
         
         version="`echo $2 | cut -f 1 -d '-'`"
         if [ "$version" = "" ]; then
            # no previous version create the tables
            sqlfile="/usr/share/opendb/patch/install/opendb.sql"
            . /usr/share/wwwconfig-common/mysql-exec.sh
         else
            # previous version, need to upgrade
            case "$version" in
               *)
                  # nothing to do here
               ;;
            esac
         fi
            
         
         # update the config file
         cp -a /etc/opendb/opendb.conf /etc/opendb/opendb.conf.tmp
         /bin/sed -e "s/\(\$CONFIG_VARS\['db_server.host'\] *=\) *\"[^\"]*\"/\1 \"$dbserver\"/" \
	          -e "s/\(\$CONFIG_VARS\['db_server.dbname'\] *=\) *\"[^\"]*\"/\1 \"$dbname\"/" \
		  -e "s/\(\$CONFIG_VARS\['db_server.username'\] *=\) *\"[^\"]*\"/\1 \"$dbuser\"/" \
		  -e "s/\(\$CONFIG_VARS\['db_server.passwd'\] *=\) *\"[^\"]*\"/\1 \"$dbpass\"/" \
		  -e "s/\(\$CONFIG_VARS\['site.admin_name'\] *=\) *\"[^\"]*\"/\1 \"$admname\"/" \
		  -e "s/\(\$CONFIG_VARS\['site.admin_email'\] *=\) *\"[^\"]*\"/\1 \"$admemail\"/" \
            /etc/opendb/opendb.conf.tmp > /etc/opendb/opendb.conf
         rm /etc/opendb/opendb.conf.tmp
      fi 
     
      
            chown -R www-data:www-data /var/lib/opendb/covers
	    chown -R www-data:www-data /var/lib/opendb/upload
            chown root.www-data /etc/opendb/opendb.conf
   ;;

   abort-upgrade|abort-remove|abort-deconfigure)

   ;;
   
   *)
      echo "postinst called with unknown argument \`$1'" >&2
      exit 1
   ;;

esac

db_stop

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

exit 0