summaryrefslogtreecommitdiff
path: root/debian/db/install/pgsql
blob: dab5d1e0ff016fd37c696ac3076f80f880b2e1b8 (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/sh

set -eu

conf_anastasis_db=/etc/anastasis/secrets/anastasis-db.secret.conf
conf_override=/etc/anastasis/override.conf

# Get database settings from dbconfig-common and write anastasis configuration files.
if [ -f /etc/dbconfig-common/anastasis-httpd.conf ]; then
  . /etc/dbconfig-common/anastasis-httpd.conf
  case "$dbc_dbtype" in
  pgsql)
    echo -e "# Config file auto-generated by Debian.\n[anastasis]\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_anastasis_db

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