aboutsummaryrefslogtreecommitdiff
path: root/debian/boca-db.postinst
diff options
context:
space:
mode:
authorBruno Cesar Ribas <brunoribas@gmail.com>2018-08-23 14:33:16 +0000
committerBruno Cesar Ribas <brunoribas@gmail.com>2018-08-23 14:33:16 +0000
commit59a32fa0c982c04d377be12d358c52bb08f1e421 (patch)
tree3efe6ace34e4e10103c4a7eeae3554a578c7697a /debian/boca-db.postinst
parent70299e4fea03568965e14026e3bf810e9ed2ef08 (diff)
downloadboca-59a32fa0c982c04d377be12d358c52bb08f1e421.tar.gz
boca-59a32fa0c982c04d377be12d358c52bb08f1e421.zip
d/boca-db.{postinst,templates}: New postinst
This postinst will prompt the user for a DB password and will configure postgresql accordingly Signed-off-by: Bruno Cesar Ribas <brunoribas@gmail.com>
Diffstat (limited to 'debian/boca-db.postinst')
-rw-r--r--debian/boca-db.postinst66
1 files changed, 66 insertions, 0 deletions
diff --git a/debian/boca-db.postinst b/debian/boca-db.postinst
new file mode 100644
index 0000000..8a36f55
--- /dev/null
+++ b/debian/boca-db.postinst
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+priority=high
+
+case "$1" in
+ configure|reconfigure)
+
+ #Assume DBHOST will be localhost, since this is the package that
+ #provides postgresql
+ #XXX future work make it work as a backup DB server
+ DBHOST=localhost
+
+ db_get boca-common/dbpassword || true
+ PASSWORD="$RET"
+
+ #If we don't have a password from boca-common 2 things could be
+ #happened
+ #1) dpkg cleaned the password already
+ #2) The user did not provide a password
+ #So we will ask for a password
+ if [[ "x$PASSWORD" == "x" ]]; then
+ db_input critical boca-db/dbpassword || true
+ db_go || true
+ db_get boca-db/dbpassword || true
+ PASSWORD="$RET"
+ db_reset boca-db/dbpassword
+ else
+ db_reset boca-common/dbpassword
+ fi
+
+ if [[ "x$PASSWORD" == "x" ]]; then
+ printf "Generating password with makepasswd"
+ PASSWORD="$(makepasswd --chars 20)"
+ echo .
+ echo "Your DB password is '$PASSWORD' take care of it."
+ fi
+ export PASSWD="$PASSWORD"
+ boca-config-dbhost $DBHOST
+ unset PASSWD
+ postgresuser=postgres
+ su - $postgresuser -c "echo drop user bocauser | psql -d template1 >/dev/null 2>/dev/null"
+ su - $postgresuser -c "echo create user bocauser createdb password \'$PASSWORD\'| psql -d template1"
+ su - $postgresuser -c "echo alter user bocauser createdb password \'$PASSWORD\'| psql -d template1"
+
+ db_input critical boca-db/createdb || true
+ db_go || true
+
+ db_get boca-db/createdb || true
+
+ if [[ "$RET" == "Yes" ]]; then
+ echo YES |php /var/www/boca/src/private/createdb.php
+ fi
+ db_reset boca-db/createdb
+
+ ;;
+ *)
+ ;;
+esac
+
+service postgresql restart || true
+
+exit 0