aboutsummaryrefslogtreecommitdiff
path: root/debian/db/install/pgsql
blob: 65e051f0c2c9713ebd7490250a48193f99cf30a4 (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

merchantdb_secretconf=/etc/taler/secrets/merchant-db.secret.conf
merchantdb_overrideconf=/etc/taler/merchant-overrides.conf

# Get database settings from dbconfig-common and write Taler configuration files.
if [ -f /etc/dbconfig-common/taler-merchant.conf ]; then
  . /etc/dbconfig-common/taler-merchant.conf
  case "$dbc_dbtype" in
  pgsql)
    echo -e "# Config file auto-generated by Debian.\n[merchant]\nDB=postgres\n\n" > \
      $merchantdb_overrideconf
    # We assume ident auth here.  We might support password auth later.
    echo -e "[merchantdb-postgres]\nCONFIG=postgres:///${dbc_dbname}\n\n" > \
      $merchantdb_secretconf

    # Allow the taler-merchant-httpd user to create schemas, needed by dbinit
    echo "GRANT CREATE ON DATABASE \"${dbc_dbtype}\" TO \"taler-merchant-httpd\";\n" | sudo -u postgres ${dbc_dbname} -f -
    # Run database initialization logic
    sudo -u taler-merchant-httpd taler-merchant-dbinit -c /etc/taler/taler.conf
    ;;
  sqlite3)
    # Later: use something like:
    # sqlite:///$DATA_DIR/merchant.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