Commit | Line | Data |
---|---|---|
6855525e JL |
1 | #!/bin/bash -e |
2 | ||
6855525e JL |
3 | # this function comes from wwwconfig-common's apache.func script |
4 | getwwwoption() { | |
5 | getwwwoption="" | |
6 | if [ -f $2 ] ; then | |
7 | if grep $1 $2 | grep -v "#" > /dev/null 2>&1 ; then | |
8 | getwwwoption=$(sed -ne "/^[[:space:]]*$1[[:space:]]\+/ s|[[:space:]]*$1[[:space:]]\+\([^[:space:]]\+\)[[:space:]]*$|\1|pg;" < $2) | |
9 | fi | |
10 | fi | |
11 | } | |
12 | ||
2ecf8ecb JL |
13 | # migrate pre-dbc debconf values |
14 | migrate_settings() { | |
15 | dumpfile=$1 | |
16 | rm -f $dumpfile | |
17 | touch $dumpfile | |
18 | chmod 0006 $dumpfile | |
19 | ||
20 | db_get "diogenes/databasemgr_type" | |
21 | dbtype="$RET" | |
22 | if [ "$dbtype" != "Automatic" ] ; then | |
23 | echo "Not migrating manual pre-dbconfig settings" | |
24 | return | |
25 | fi | |
26 | echo "Migrating automatic pre-dbconfig settings" | |
27 | db_get "diogenes/databasemgr_server" | |
28 | if [ -n "$RET" ] && [ "$RET" != "localhost" ]; then | |
29 | echo "dbserver=\"$RET\"" >> $dumpfile | |
30 | fi | |
31 | db_get "diogenes/database_name" | |
32 | if [ -n "$RET" ]; then | |
33 | echo "dbname=\"$RET\"" >> $dumpfile | |
34 | fi | |
35 | db_get "diogenes/database_user" | |
36 | if [ -n "$RET" ]; then | |
37 | echo "dbuser=\"$RET\"" >> $dumpfile | |
38 | fi | |
39 | db_get "diogenes/database_pass" | |
40 | if [ -n "$RET" ]; then | |
41 | echo "dbpass=\"$RET\"" >> $dumpfile | |
42 | fi | |
43 | } | |
44 | ||
45 | clean_settings() { | |
46 | echo "Removing pre-dbconfig settings" | |
47 | db_clear "diogenes/databasemgr_type" || true | |
48 | db_clear "diogenes/databasemgr_server" || true | |
49 | db_clear "diogenes/dbmyadmin" || true | |
50 | db_clear "diogenes/dbadmpass" || true | |
51 | db_clear "diogenes/database_name" || true | |
52 | db_clear "diogenes/database_user" || true | |
53 | db_clear "diogenes/database_pass" || true | |
54 | } | |
55 | ||
6855525e JL |
56 | |
57 | # Use debconf baby | |
58 | . /usr/share/debconf/confmodule | |
59 | db_version 2.0 | |
60 | db_title Diogenes | |
61 | ||
62 | db_input "low" "diogenes/welcome" || true | |
63 | db_go | |
64 | db_input "high" "diogenes/purge_removes_data" || true | |
65 | db_go | |
66 | ||
67 | ### Required options no matter what ### | |
68 | db_input "high" "diogenes/webservers" || true | |
69 | db_go | |
70 | db_get "diogenes/webservers" | |
71 | webservers="$RET" | |
72 | ||
73 | # if a single webserver is selected, | |
74 | # try to get the user and group the webserver runs as | |
75 | nbsrv=0 | |
76 | for i in $webservers ; do nbsrv=`expr $nbsrv + 1`; done | |
77 | ||
78 | if [ $nbsrv == 1 ]; then | |
79 | server=$(echo $webservers | sed 's/,$//') | |
fda32171 | 80 | config_file= |
6f76fd69 RB |
81 | if [ "$server" == "apache2" ] && [ -f /etc/$server/envvars ]; then |
82 | envvars_file=/etc/$server/envvars | |
83 | webuser=$(grep "APACHE_RUN_USER=" $envvars_file | sed 's/.*=//') | |
84 | webgroup=$(grep "APACHE_RUN_GROUP=" $envvars_file | sed 's/.*=//') | |
85 | elif [ "$server" == "apache2" ] && [ -f /etc/$server/apache2.conf ]; then | |
fda32171 JL |
86 | config_file=/etc/$server/apache2.conf |
87 | elif [ -f /etc/$server/httpd.conf ]; then | |
88 | config_file=/etc/$server/httpd.conf | |
89 | fi | |
90 | if [ -n "$config_file" ]; then | |
91 | getwwwoption User $config_file | |
6855525e | 92 | webuser=$(echo "$getwwwoption" | sed -e "q") |
fda32171 | 93 | getwwwoption Group $config_file |
6855525e JL |
94 | webgroup=$(echo "$getwwwoption" | sed -e "q") |
95 | fi | |
96 | fi | |
97 | ||
98 | if [ -z "$webuser" ]; then | |
99 | db_input "high" "diogenes/webuser" || true | |
100 | db_go | |
101 | else | |
102 | db_set "diogenes/webuser" "$webuser" | |
103 | fi | |
104 | if [ -z "$webgroup" ]; then | |
105 | db_input "high" "diogenes/webgroup" || true | |
106 | db_go | |
107 | else | |
108 | db_set "diogenes/webgroup" "$webgroup" | |
109 | fi | |
110 | ||
7e17ed74 JL |
111 | # source dbconfig-common shell library, and call the hook function |
112 | if [ -f /usr/share/dbconfig-common/dpkg/config.mysql ]; then | |
113 | . /usr/share/dbconfig-common/dpkg/config.mysql | |
eb8500fd JL |
114 | dbc_first_version=0.9.20-2 |
115 | dbc_oldversion="$2" | |
116 | # check if we are migrating from a pre-dbc version | |
117 | if [ "$dbc_oldversion" ] && [ "$dbc_first_version" ] && \ | |
118 | dpkg --compare-versions "$dbc_first_version" gt "$dbc_oldversion"; then | |
2ecf8ecb | 119 | migrating="yes" |
eb8500fd | 120 | fi |
2ecf8ecb JL |
121 | |
122 | if [ -n "$migrating" ]; then | |
123 | dumpfile=/etc/diogenes/diogenes.dump | |
124 | migrate_settings $dumpfile | |
125 | dbc_load_include="sh:$dumpfile" | |
126 | fi | |
127 | ||
7e17ed74 | 128 | dbc_go diogenes $@ |
2ecf8ecb JL |
129 | |
130 | if [ -n "$migrating" ]; then | |
131 | rm -f $dumpfile | |
132 | #clean_settings | |
133 | fi | |
7e17ed74 | 134 | fi |
6855525e | 135 |