source: lliurex-analytics-server/trunk/fuentes/debian/postinst @ 3377

Last change on this file since 3377 was 3377, checked in by mabarracus, 2 years ago

Fix postinst questions

File size: 6.7 KB
Line 
1#!/bin/bash
2# postinst script
3#
4# see: dh_installdeb(1)
5
6#set -e
7
8. /usr/share/debconf/confmodule
9
10# summary of how this script can be called:
11#        * <postinst> `configure' <most-recently-configured-version>
12#        * <old-postinst> `abort-upgrade' <new version>
13#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
14#          <new-version>
15#        * <postinst> `abort-remove'
16#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
17#          <failed-install-package> <version> `removing'
18#          <conflicting-package> <version>
19# for details, see http://www.debian.org/doc/debian-policy/ or
20# the debian-policy package
21
22do_dialog(){
23    input=$(dialog      \
24        --title "$1"    \
25        --inputbox "$2" 0 0     \
26        3>&1 1>&2 2>&3 3>&-)
27        clear
28}
29ask_question(){
30    dialog --yesno "$1" 0 0
31    if [ $? -eq 0 ]; then
32        input=yes
33    else
34        input=no
35    fi
36    clear
37}
38
39case "$1" in
40    configure)
41
42    ASK="no"
43   
44#CHECK OLD CONFIG
45    if [ ! -d "/etc/lliurex-analytics-server" ]; then
46        ASK="yes"
47        echo "creating config directory"
48        mkdir /etc/lliurex-analytics-server
49    else
50        if [ -f "/etc/lliurex-analytics-server/config_db" ]; then
51            USER=$(cat /etc/lliurex-analytics-server/config_db|perl -ne '/user=(.*)/i && print $1')
52            PASS=$(cat /etc/lliurex-analytics-server/config_db|perl -ne '/pass=(.*)/i && print $1')
53            if [ -n "${USER}" -a -n "${PASS}" ]; then
54                RES=$(echo 'show tables;'|mysql -u${USER} -p${PASS} -s analytics 2>/dev/null)
55                if [ -n "${RES}" ]; then
56                    user="${USER}"
57                    pass="${PASS}"
58                    ASK="no"
59                    echo "using user & pass from config_db file"
60                else
61                    echo "wrong user & pass into config_db file"
62                    ASK="yes"
63                fi
64            else
65                echo "user & pass not detected in config_db file"
66                ASK="yes"
67            fi
68        else
69            echo "config_db file not found"
70            ASK="yes"
71        fi
72    fi
73
74# ASK QUESTIONS
75    print_info="no"
76    ask_user="yes"
77    if [ "${ASK}" = "yes" ]; then
78        ask_question 'Desea configurar la base de datos analytics?'
79        if [ "x$input" == "xyes" ]; then
80            create_db=$input
81            ask_question 'Desea crear usuario para la tabla de la base de datos?'
82            create_user=$input
83            if [ "x$input" == "xyes" ]; then
84                do_dialog 'Database configuration' 'Nombre del usuario para crear:'
85                user=$input
86                do_dialog 'Database configuration' 'Password del usuario para crear:'
87                pass=$input
88            else
89                do_dialog 'Database configuration' 'Usuario con permiso en bd analytics?'
90                user=$input
91                do_dialog 'Database configuration' 'Password del usuario con permiso en bd analytics?'
92                pass=$input
93            fi
94            do_dialog 'Database configuration' 'Password root de mysql?'
95            rootpass=$input
96        else
97            print_info="yes"
98        fi
99    else
100    #ASK=no
101        create_db="no"
102        create_user="no"
103        ask_user="no"
104    fi
105
106#INITIALIZE DB
107
108    if [ "x$create_db" == "xyes" ]; then
109        if [ "x$rootpass" == "x" ]; then
110            mysqlroot="mysql -uroot"
111            mysqluser="mysql -u$user -p$pass"
112        else
113            mysqlroot="mysql -uroot -p$rootpass"
114            mysqluser="mysql -u$user -p$pass"
115        fi
116        if [ "x$create_user" == "xyes" ]; then
117            echo "create user '$user'@'%' identified by '$pass';" | $mysqlroot
118            echo "grant all privileges on analytics.* to '$user'@'%';" | $mysqlroot
119            echo "flush privileges;" | $mysqlroot
120            echo "user=$user" > /etc/lliurex-analytics-server/config_db
121            echo "pass=$pass" >> /etc/lliurex-analytics-server/config_db
122            chmod 750 /etc/lliurex-analytics-server/config_db
123        fi
124        $mysqluser < /usr/lib/analytics-server/analytics.sql
125    else
126        if [ "x$create_user" != "xyes" -a "${ask_user}" != "no" ]; then
127            do_dialog 'Analytics configuration' 'Usuario con permiso en bd analytics?'
128            user=$input
129            do_dialog 'Analytics configuration' 'Password del usuario con permiso en bd analytics?'
130            pass=$input
131            echo "user=$user" > /etc/lliurex-analytics-server/config_db
132            echo "pass=$pass" >> /etc/lliurex-analytics-server/config_db
133            chmod 640 /etc/lliurex-analytics-server/config_db
134        fi
135    fi
136
137    RES1=$(grep -o '@phpuser@' /usr/lib/analytics-server/analytics/config.php)
138    RES2=$(grep -o '@phppass@' /usr/lib/analytics-server/analytics/config.php)
139
140    if [ -f "/usr/lib/analytics-server/analytics/config.php" -a -n "${RES1}" -a -n "${RES2}" ]; then
141        sed -i.old -e "s/@phpuser@/$user/g" -e  "s/@phppass@/$pass/g" /usr/lib/analytics-server/analytics/config.php
142        rm /usr/lib/analytics-server/analytics/config.php.old
143        chmod 640 /usr/lib/analytics-server/analytics/config.php
144        apachectl_cmd=$(which apachectl)
145        apache_group=$(${apachectl_cmd} -t -D DUMP_RUN_CFG 2>/dev/null|perl -ne '/group:[ ]+name=\"(.*)\"/i && print $1')
146        if [ -z "${apache_group}" ]; then
147            echo "Warning: apache group not detected, falling back to www-data"
148            apache_group="www-data"
149        fi
150        chgrp ${apache_group} /usr/lib/analytics-server/analytics/config.php
151    else
152        echo "BUG !! WARNING: replace tags @phpuser@ & @phppass@ not found in /usr/lib/analytics-server/analytics/config.php"
153        echo "Installation may not work succesfully, report bug to developers"
154    fi
155
156
157# CONFIG APACHE
158
159    a2enmod rewrite
160    a2ensite analytics
161    service apache2 restart
162
163    if [ "${print_info}" = "yes" ]; then
164            echo
165            echo "To import database schema use:"
166            echo ""
167            echo "echo \"create user '<user>'@'%' identified by '<password>';\" | mysql -u root -p<root_password>"
168            echo "echo \"grant all privileges on analytics.* to '<user>'@'%';\" | mysql -u root -p<root_password>"
169            echo "echo \"flush privileges; \" | mysql -u root -p<root_password>"
170            echo "mysql -u <user> -p<root_password> < /usr/lib/analytics-server/analytics.sql"
171            echo "After that, edit /usr/lib/analytics-server/analytics/config.php"
172            echo
173            echo
174    fi
175    ;;
176
177    abort-upgrade|abort-remove|abort-deconfigure)
178    ;;
179
180    *)
181        echo "postinst called with unknown argument \`$1'" >&2
182        exit 1
183    ;;
184esac
185
186# dh_installdeb will replace this with shell code automatically
187# generated by other debhelper scripts.
188
189#DEBHELPER#
190
191exit 0
192
193
Note: See TracBrowser for help on using the repository browser.