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
|