#!/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 "# Config file auto-generated by Debian.\n[syncdb-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