#!/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 # 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 Debian setup!" say "" say "All configuration values asked during the setup script" say "can be changed in config/user.conf" ask_questions # END USER INTERACTION # Check DNS settings if ! ping -c1 "exchange.${DOMAIN_NAME}" &>/dev/null; then say "Could not ping exchange.${DOMAIN_NAME}." say "Please make sure your DNS/network are working." exit 1 fi if ! ping -c1 "bank.${DOMAIN_NAME}" &>/dev/null; then say "Could not ping bank.${DOMAIN_NAME}." say "Please make sure your DNS/network are working." exit 1 fi 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 if test -z "${PROTO:-}"; then if test "${ENABLE_TLS:-}" == "y"; then PROTO="https" else PROTO="http" fi echo "PROTO=$PROTO">>config/internal.conf fi # Check if the user is root, otherwise EXIT. check_user # Installation of deb packages required . install_packages.sh config_services # Final message to the user say "Congratulations, you have successfully installed GNU Taler" say "Your bank is at ${PROTO}://bank.${DOMAIN_NAME}/" say "A merchant is at ${PROTO}://backend.${DOMAIN_NAME}/" say "You should set credentials for the merchant soon." exit 0 # END INSTALLATION