summaryrefslogtreecommitdiff
path: root/debian/taler-merchant.postinst
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-07-29 19:50:22 +0200
committerFlorian Dold <florian@dold.me>2021-07-29 19:50:22 +0200
commit926683c5d9c784952a34e1d9ca97909bdf274c83 (patch)
tree6590735ee32f77a0c7eebd68284c5d1c47cc4b98 /debian/taler-merchant.postinst
parentfb23045fe1d062cd4f26f3265ac94ded47660abd (diff)
downloadmerchant-926683c5d9c784952a34e1d9ca97909bdf274c83.tar.gz
merchant-926683c5d9c784952a34e1d9ca97909bdf274c83.tar.bz2
merchant-926683c5d9c784952a34e1d9ca97909bdf274c83.zip
debian: new config
Diffstat (limited to 'debian/taler-merchant.postinst')
-rw-r--r--debian/taler-merchant.postinst173
1 files changed, 58 insertions, 115 deletions
diff --git a/debian/taler-merchant.postinst b/debian/taler-merchant.postinst
index f5ed9c4d..fbc67380 100644
--- a/debian/taler-merchant.postinst
+++ b/debian/taler-merchant.postinst
@@ -2,137 +2,80 @@
set -e
+_USERNAME=taler-merchant-httpd
+_GROUPNAME=www-data
+
# Set permissions for sqlite3 file
# (for when we support sqlite3 in the future)
dbc_dbfile_owner="${_USERNAME}:${_GROUPNAME}"
dbc_dbfile_perms="0600"
-
# 1st argument will be the SECURITYTOKEN to use.
apache_install() {
- mkdir -p /etc/apache2/conf-available
- if [ ! -f /etc/apache2/conf-available/taler-merchant.conf ];
- then
- cat /etc/taler-merchant/apache.conf | sed -e "s/%SECURITYTOKEN%/$1/" > /etc/apache2/conf-available/taler-merchant.conf
- fi
+ mkdir -p /etc/apache2/conf-available
+ if [ ! -f /etc/apache2/conf-available/taler-merchant.conf ]; then
+ cat /etc/taler-merchant/apache.conf | sed -e "s/%SECURITYTOKEN%/$1/" >/etc/apache2/conf-available/taler-merchant.conf
+ fi
}
# 1st argument will be the SECURITYTOKEN to use.
nginx_install() {
- mkdir -p /etc/nginx/conf-available
- if [ ! -f /etc/nginx/conf-available/taler-merchant.conf ];
- then
- cat /etc/taler-merchant/nginx.conf | sed -e "s/%SECURITYTOKEN%/$1/" > /etc/nginx/conf-available/taler-merchant.conf
- fi
+ mkdir -p /etc/nginx/conf-available
+ if [ ! -f /etc/nginx/conf-available/taler-merchant.conf ]; then
+ cat /etc/taler-merchant/nginx.conf | sed -e "s/%SECURITYTOKEN%/$1/" >/etc/nginx/conf-available/taler-merchant.conf
+ fi
}
. /usr/share/debconf/confmodule
-
case "${1}" in
- configure)
- db_version 2.0
-
- db_get taler-merchant/username
- _USERNAME="${RET:-taler-merchant-httpd}"
-
- db_get taler-merchant/groupname
- _GROUPNAME="${RET:-www-data}"
-
- # Read default values
- CONFIG_FILE="/etc/default/taler-merchant"
- TALER_HOME="/var/lib/taler-merchant"
-
- # Creating taler group if needed
- if ! getent group ${_GROUPNAME} > /dev/null
- then
- echo -n "Creating new Taler group ${_GROUPNAME}:"
- addgroup --quiet --system ${_GROUPNAME}
- echo " done."
- fi
- # Creating taler users if needed
- if ! getent passwd ${_USERNAME} > /dev/null
- then
- echo -n "Creating new Taler user ${_USERNAME}:"
- adduser --quiet --system --ingroup ${_GROUPNAME} --home ${TALER_HOME}/httpd ${_USERNAME}
- echo " done."
- fi
-
-
- # Setup postgres database (needs dbconfig-pgsql package)
- if [ -f /usr/share/dbconfig-common/dpkg/postinst.pgsql ]; then
- . /usr/share/dbconfig-common/dpkg/postinst.pgsql
- dbc_pgsql_createdb_encoding="UTF8"
- dbc_go taler-merchant "$@"
- fi
-
- chown ${_USERNAME}:postgres /etc/taler-merchant.conf
- chmod 460 /etc/taler-merchant.conf
-
-
- # Create access secret
- SECRET=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1`
- echo SECRET > ${TALER_HOME}/master-api-key.txt
- chown ${_USERNAME}:${_GROUPNAME} ${TALER_HOME}/master-api-key.txt
- chmod 440 ${TALER_HOME}/master-api-key.txt
-
- # Writing new values to configuration file
- echo -n "Writing new configuration file:"
- CONFIG_NEW=$(tempfile)
-
-cat > "${CONFIG_NEW}" <<EOF
-# This file controls the behaviour of the Taler init script.
-# It will be parsed as a shell script.
-# please do not edit by hand, use 'dpkg-reconfigure taler-merchant'.
-
-TALER_USER=${_USERNAME}
-TALER_GROUP=${_GROUPNAME}
-EOF
-
-
-cat > "/etc/systemd/system/taler-merchant-httpd.service" <<EOF
-[Unit]
-Description=GNU Taler payment system merchant backend
-
-[Service]
-EnvironmentFile=/etc/default/taler-merchant
-User=${_USERNAME}
-Type=simple
-Restart=on-failure
-ExecStart=/usr/bin/taler-merchant-httpd -c /etc/taler-merchant.conf
-EOF
-
- systemctl daemon-reload >/dev/null 2>&1 || true
-
- cp -f "${CONFIG_NEW}" "${CONFIG_FILE}"
- echo " done."
-
- # Configure Webserver
- db_get taler-merchant/reconfigure-webserver
- webservers="$RET"
- for webserver in $webservers; do
- webserver=${webserver%,}
- if [ "$webserver" = "nginx" ] ; then
- nginx_install "$SECRET"
- else
- apache_install "$SECRET"
- fi
- done
- db_stop
-
- # Cleaning
- echo "All done."
-
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
-
- ;;
-
- *)
- echo "postinst called with unknown argument \`${1}'" >&2
- exit 1
- ;;
+configure)
+ db_start
+ db_version 2.0
+
+ # Read default values
+ CONFIG_FILE="/etc/default/taler-merchant"
+ TALER_HOME="/var/lib/taler"
+
+ # Creating taler users if needed
+ if ! getent passwd ${_USERNAME} >/dev/null; then
+ adduser --quiet --system --ingroup ${_GROUPNAME} --home ${TALER_HOME} ${_USERNAME}
+ fi
+
+ # Setup postgres database (needs dbconfig-pgsql package)
+ if [ -f /usr/share/dbconfig-common/dpkg/postinst.pgsql ]; then
+ . /usr/share/dbconfig-common/dpkg/postinst.pgsql
+ dbc_pgsql_createdb_encoding="UTF8"
+ dbc_go taler-merchant "$@"
+ fi
+
+ # Create access secret
+ SECRET=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1)
+ echo SECRET >${TALER_HOME}/master-api-key.txt
+ chown ${_USERNAME}:${_GROUPNAME} ${TALER_HOME}/master-api-key.txt
+ chmod 440 ${TALER_HOME}/master-api-key.txt
+
+ # Configure Webserver
+ db_get taler-merchant/reconfigure-webserver
+ webservers="$RET"
+ for webserver in $webservers; do
+ webserver=${webserver%,}
+ if [ "$webserver" = "nginx" ]; then
+ nginx_install "$SECRET"
+ else
+ apache_install "$SECRET"
+ fi
+ done
+ db_stop
+
+ ;;
+
+abort-upgrade | abort-remove | abort-deconfigure) ;;
+
+*)
+ echo "postinst called with unknown argument \`${1}'" >&2
+ exit 1
+ ;;
esac
#DEBHELPER#