summaryrefslogtreecommitdiff
path: root/debian/db/install/pgsql
diff options
context:
space:
mode:
Diffstat (limited to 'debian/db/install/pgsql')
-rwxr-xr-xdebian/db/install/pgsql38
1 files changed, 38 insertions, 0 deletions
diff --git a/debian/db/install/pgsql b/debian/db/install/pgsql
new file mode 100755
index 0000000..4695224
--- /dev/null
+++ b/debian/db/install/pgsql
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+set -eu
+
+conf_sync_db=/etc/sync/secrets/sync-db.secret.conf
+conf_override=/etc/sync/override.conf
+
+# Get database settings from dbconfig-common and write sync configuration files.
+if [ -f /etc/dbconfig-common/sync-httpd.conf ]; then
+ . /etc/dbconfig-common/sync-httpd.conf
+ case "$dbc_dbtype" in
+ pgsql)
+ echo -e "# Config file auto-generated by Debian.\n[sync]\nDB=postgres\n\n" > \
+ $conf_override
+ # We assume ident auth here. We might support password auth later.
+ echo -e "[stasis-postgres]\nCONFIG=postgres:///${dbc_dbname}\n\n" > \
+ $conf_sync_db
+
+ # Allow the taler-merchant-httpd user to create schemas, needed by dbinit
+ echo "GRANT CREATE on database \"$dbc_dbname\" to \"sync-httpd\";" | sudo -u postgres psql -f -
+ # Run database initialization logic
+ sudo -u sync-httpd sync-dbinit -c /etc/sync/sync.conf
+ ;;
+ sqlite3)
+ # Later: use something like:
+ # sqlite:///$DATA_DIR/sync.db
+ # But for now, sqlite is unsupported:
+ echo "Unsupported database type $dbc_type."
+ exit 1
+ ;;
+ "") ;;
+
+ *)
+ echo "Unsupported database type $dbc_type."
+ exit 1
+ ;;
+ esac
+fi