summaryrefslogtreecommitdiff
path: root/debian/db/install/pgsql
blob: f24927bce5ca08c2348251524ed0fab6a05ee9ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 "# 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