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

Last change on this file since 3375 was 3375, checked in by mabarracus, 3 years ago

fix perl quotes

File size: 6.6 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    if [ "${ASK}" = "yes" ]; then
77        ask_question 'Desea configurar la base de datos analytics?'
78        if [ "x$input" == "xyes" ]; then
79            create_db=$input
80            ask_question 'Desea crear usuario para la tabla de la base de datos?'
81            create_user=$input
82            if [ "x$input" == "xyes" ]; then
83                do_dialog 'Database configuration' 'Nombre del usuario para crear:'
84                user=$input
85                do_dialog 'Database configuration' 'Password del usuario para crear:'
86                pass=$input
87            else
88                do_dialog 'Database configuration' 'Usuario con permiso en bd analytics?'
89                user=$input
90                do_dialog 'Database configuration' 'Password del usuario con permiso en bd analytics?'
91                pass=$input
92            fi
93            do_dialog 'Database configuration' 'Password root de mysql?'
94            rootpass=$input
95        else
96            print_info="yes"
97        fi
98    else
99    #ASK=no
100        create_db="no"
101        create_user="no"
102    fi
103
104#INITIALIZE DB
105
106    if [ "x$create_db" == "xyes" ]; then
107        if [ "x$rootpass" == "x" ]; then
108            mysqlroot="mysql -uroot"
109            mysqluser="mysql -u$user -p$pass"
110        else
111            mysqlroot="mysql -uroot -p$rootpass"
112            mysqluser="mysql -u$user -p$pass"
113        fi
114        if [ "x$create_user" == "xyes" ]; then
115            echo "create user '$user'@'%' identified by '$pass';" | $mysqlroot
116            echo "grant all privileges on analytics.* to '$user'@'%';" | $mysqlroot
117            echo "flush privileges;" | $mysqlroot
118            echo "user=$user" > /etc/lliurex-analytics-server/config_db
119            echo "pass=$pass" >> /etc/lliurex-analytics-server/config_db
120            chmod 750 /etc/lliurex-analytics-server/config_db
121        fi
122        $mysqluser < /usr/lib/analytics-server/analytics.sql
123    else
124        if [ "x$create_user" != "xyes" ]; then
125            do_dialog 'Analytics configuration' 'Usuario con permiso en bd analytics?'
126            user=$input
127            do_dialog 'Analytics configuration' 'Password del usuario con permiso en bd analytics?'
128            pass=$input
129            echo "user=$user" > /etc/lliurex-analytics-server/config_db
130            echo "pass=$pass" >> /etc/lliurex-analytics-server/config_db
131            chmod 640 /etc/lliurex-analytics-server/config_db
132        fi
133    fi
134
135    RES1=$(grep -o '@phpuser@' /usr/lib/analytics-server/analytics/config.php)
136    RES2=$(grep -o '@phppass@' /usr/lib/analytics-server/analytics/config.php)
137
138    if [ -f "/usr/lib/analytics-server/analytics/config.php" -a -n "${RES1}" -a -n "${RES2}" ]; then
139        sed -i.old -e "s/@phpuser@/$user/g" -e  "s/@phppass@/$pass/g" /usr/lib/analytics-server/analytics/config.php
140        rm /usr/lib/analytics-server/analytics/config.php.old
141        chmod 640 /usr/lib/analytics-server/analytics/config.php
142        apachectl_cmd=$(which apachectl)
143        apache_group=$(${apachectl_cmd} -t -D DUMP_RUN_CFG 2>/dev/null|perl -ne '/group:[ ]+name=\"(.*)\"/i && print $1')
144        if [ -z "${apache_group}" ]; then
145            echo "Warning: apache group not detected, falling back to www-data"
146            apache_group="www-data"
147        fi
148        chgrp ${apache_group} /usr/lib/analytics-server/analytics/config.php
149    else
150        echo "BUG !! WARNING: replace tags @phpuser@ & @phppass@ not found in /usr/lib/analytics-server/analytics/config.php"
151        echo "Installation may not work succesfully, report bug to developers"
152    fi
153
154
155# CONFIG APACHE
156
157    a2enmod rewrite
158    a2ensite analytics
159    service apache2 restart
160
161    if [ "${print_info}" = "yes" ]; then
162            echo
163            echo "To import database schema use:"
164            echo ""
165            echo "echo \"create user '<user>'@'%' identified by '<password>';\" | mysql -u root -p<root_password>"
166            echo "echo \"grant all privileges on analytics.* to '<user>'@'%';\" | mysql -u root -p<root_password>"
167            echo "echo \"flush privileges; \" | mysql -u root -p<root_password>"
168            echo "mysql -u <user> -p<root_password> < /usr/lib/analytics-server/analytics.sql"
169            echo "After that, edit /usr/lib/analytics-server/analytics/config.php"
170            echo 
171            echo
172    fi
173    ;;
174
175    abort-upgrade|abort-remove|abort-deconfigure)
176    ;;
177
178    *)
179        echo "postinst called with unknown argument \`$1'" >&2
180        exit 1
181    ;;
182esac
183
184# dh_installdeb will replace this with shell code automatically
185# generated by other debhelper scripts.
186
187#DEBHELPER#
188
189exit 0
190
191
Note: See TracBrowser for help on using the repository browser.