From bfbbb5f8182fa668a992fadd504e43daa31962a4 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 1 Jan 2021 20:43:30 +0100 Subject: improving Debian package (untested) --- debian/taler-merchant.postinst | 152 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 150 insertions(+), 2 deletions(-) (limited to 'debian/taler-merchant.postinst') diff --git a/debian/taler-merchant.postinst b/debian/taler-merchant.postinst index 5cc1a6ad..baa291f6 100644 --- a/debian/taler-merchant.postinst +++ b/debian/taler-merchant.postinst @@ -2,15 +2,163 @@ set -e +# 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 + # TODO: might want to remember if *we* enabled those, and disable in postrm + a2enmod proxy + a2enmod proxy_http + a2enmod headers + a2enmod rewrite +} + +# 1st argument will be the SECURITYTOKEN to use. +nginx_install() { + mkdir -p /etc/nginx/conf-available + if [ ! -f /etc/apache2/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/autostart - _AUTOSTART="${RET}" # boolean + db_get taler-merchant/username + _USERNAME="${RET:-taler-merchant-httpd}" + + db_get taler-merchant/groupname + _GROUPNAME="${RET:-www-data}" + + # Read default values + 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 + + # 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}" < "/etc/systemd/system/taler-merchant-httpd.service" < /dev/null ; then + if invoke-rc.d $webserver status > /dev/null 2>&1 ; then + invoke-rc.d $webserver reload 3>/dev/null || true + fi + else + if /etc/init.d/$webserver status > /dev/null 2>&1 ; then + /etc/init.d/$webserver reload 3>/dev/null || true + fi + fi + fi + done db_stop # Cleaning -- cgit v1.2.3