summaryrefslogtreecommitdiff
path: root/regional-currency/main.sh
blob: f7bc9e3b84e8f214000db70c0badca631f820b80 (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/bin/bash
# This file is in the public domain.

# main.sh is the main script that asks the questions and
# puts the answers into environment variables located at  "config/taler-internal.conf or config/taler.conf" files
# Nginx configuration - Reads values directly from these "config files".

set -eu

# include functions source file

source functions.sh

# Clear logs

> setup.log

# include variables from configuration
mkdir -p config/
touch config/user.conf config/internal.conf
# Values supplied by user
source config/user.conf
# Values we generated
source config/internal.conf

# Ask questions to user
# START USER INTERACTION
say "Welcome to the GNU Taler regional currency setup!"
say ""
say "All configuration values asked during the setup script"
say "can be changed in config/user.conf."
say "Logs are written in setup.log."
say ""

# END USER INTERACTION

# Check if the user is root, otherwise EXIT.
check_user

# Installation of deb packages required
say ""
say "Installing packages (step 1 of 6)"
. install_packages.sh

say ""
say "Interactive configuration (step 2 of 6)"
./ask_questions.py
source config/user.conf

# Remove when libeufin currencies.conf is in sync with exchange
cat >>/usr/share/libeufin/config.d/netzbon.conf <<EOF
[CURRENCY-NETZBON]
enabled=yes
name=NetzBon
code=NETZBON
fractional_input_digits=2
fractional_normal_digits=2
fractional_trailing_zero_digits=2
alt_unit_names={"0":"NETZBON"}
EOF

if test -z "${BANK_EXCHANGE_PASSWORD:-}"; then
  BANK_EXCHANGE_PASSWORD=$(uuidgen)
  echo "BANK_EXCHANGE_PASSWORD=\"${BANK_EXCHANGE_PASSWORD}\"" >>config/internal.conf
fi

if test -z "${BANK_PORT:-}"; then
  echo "BANK_PORT=8080" >>config/user.conf
fi

say ""
say "Configuring nginx (step 3 of 6)"
./config_nginx.sh

say ""
say "Setting up libeufin (step 4 of 6)"
./setup-libeufin.sh

say ""
say "Setting up exchange (step 5 of 6)"
./setup-exchange.sh

say ""
say "Setting up merchant (step 6 of 6)"
./setup-merchant.sh

# Final message to the user
say ""
say "Congratulations, you have successfully installed GNU Taler"
say "Your bank is at ${PROTO}://bank.${DOMAIN_NAME}/"
say "You can connect to the bank web UI as 'admin' using '${BANK_ADMIN_PASSWORD}'"
say "A merchant is at ${PROTO}://backend.${DOMAIN_NAME}/"
say "You should set credentials for the merchant soon."

say "For currency conversion to work, you must manually complete"
say "the EBICS configuration."

exit 0
# END INSTALLATION