From 926683c5d9c784952a34e1d9ca97909bdf274c83 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 29 Jul 2021 19:50:22 +0200 Subject: debian: new config --- debian/taler-merchant.postinst | 173 ++++++++++++++--------------------------- 1 file changed, 58 insertions(+), 115 deletions(-) (limited to 'debian/taler-merchant.postinst') 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}" < "/etc/systemd/system/taler-merchant-httpd.service" </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# -- cgit v1.2.3