diff options
-rw-r--r-- | debian/sync-httpd.postinst | 4 | ||||
-rw-r--r-- | debian/sync-httpd.service | 3 | ||||
-rw-r--r-- | src/util/.gitignore | 1 | ||||
-rw-r--r-- | src/util/Makefile.am | 12 | ||||
-rw-r--r-- | src/util/sync-config | 17 | ||||
-rw-r--r-- | src/util/sync-config.c | 73 | ||||
-rw-r--r-- | src/util/sync-config.in | 13 |
7 files changed, 103 insertions, 20 deletions
diff --git a/debian/sync-httpd.postinst b/debian/sync-httpd.postinst index 16acb35..60393ad 100644 --- a/debian/sync-httpd.postinst +++ b/debian/sync-httpd.postinst @@ -2,7 +2,7 @@ set -e -TALER_HOME="/var/lib/taler/" +SYNC_HOME="/var/lib/sync/" _USERNAME=sync-httpd _GROUPNAME=www-data @@ -17,7 +17,7 @@ case "${1}" in configure) # Creating taler users if needed if ! getent passwd ${_USERNAME} >/dev/null; then - adduser --quiet --system --ingroup ${_GROUPNAME} --no-create-home --home ${TALER_HOME} ${_USERNAME} + adduser --quiet --system --ingroup ${_GROUPNAME} --no-create-home --home ${SYNC_HOME} ${_USERNAME} fi if ! dpkg-statoverride --list /etc/sync/secrets/sync-db.secret.conf >/dev/null 2>&1; then diff --git a/debian/sync-httpd.service b/debian/sync-httpd.service index c7b9fb2..2c97c37 100644 --- a/debian/sync-httpd.service +++ b/debian/sync-httpd.service @@ -6,3 +6,6 @@ User=sync-httpd Type=simple Restart=on-failure ExecStart=/usr/bin/sync-httpd -c /etc/sync/sync.conf + +[Install] +WantedBy=multi-user.target diff --git a/src/util/.gitignore b/src/util/.gitignore new file mode 100644 index 0000000..29ee759 --- /dev/null +++ b/src/util/.gitignore @@ -0,0 +1 @@ +sync-config diff --git a/src/util/Makefile.am b/src/util/Makefile.am index 00e70d9..6bc2447 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -13,7 +13,17 @@ bin_SCRIPTS = \ sync-config EXTRA_DIST = \ - $(bin_SCRIPTS) + $(bin_SCRIPTS) \ + sync-config.in + +edit_script = $(SED) -e 's,%libdir%,$(libdir),'g $(NULL) + +sync-config: sync-config.in + rm -f $@ $@.tmp && \ + $(edit_script) $< >$@.tmp && \ + chmod a-w+x $@.tmp && \ + mv $@.tmp $@ + lib_LTLIBRARIES = \ libsyncutil.la diff --git a/src/util/sync-config b/src/util/sync-config deleted file mode 100644 index 6184167..0000000 --- a/src/util/sync-config +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -set -eu - -if ! type gnunet-config >/dev/null; then - echo "$0 needs gnunet-config to be installed" - exit 1 -fi - -# FIXME: not very portable ... -# FIXME: should use "libdir" instead of prefix/lib, but somehow -# the recursive expansion does not work ;-(. -GC=`which gnunet-config` -ASAN="" -A=`ldd $GC | grep libasan` && ASAN=`echo $A | awk '{print $3 ":"}'` -export LD_PRELOAD=${ASAN}${LD_PRELOAD:-}:/home/grothoff/lib/libsyncutil.so -exec gnunet-config "$@" diff --git a/src/util/sync-config.c b/src/util/sync-config.c new file mode 100644 index 0000000..0e432f8 --- /dev/null +++ b/src/util/sync-config.c @@ -0,0 +1,73 @@ +/* + This file is part of Taler. + Copyright (C) 2012-2021 Taler Systems SA + + Taler is free software: you can redistribute it and/or modify it + under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, + or (at your option) any later version. + + Taler is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + + SPDX-License-Identifier: AGPL3.0-or-later + */ + +/** + * @file util/taler-config.c + * @brief tool to access and manipulate Taler configuration files + * @author Christian Grothoff + */ +#include "platform.h" +#include "taler_util_lib.h" + + +/** + * Program to manipulate configuration files. + * + * @param argc number of arguments from the command line + * @param argv command line arguments + * @return 0 ok, 1 on error + */ +int +main (int argc, + char *const *argv) +{ + struct GNUNET_CONFIGURATION_ConfigSettings cs = { + .api_version = GNUNET_UTIL_VERSION, + .global_ret = EXIT_SUCCESS + }; + struct GNUNET_GETOPT_CommandLineOption options[] = { + GNUNET_GETOPT_OPTION_END + }; + enum GNUNET_GenericReturnValue ret; + + if (GNUNET_OK != + GNUNET_STRINGS_get_utf8_args (argc, argv, + &argc, &argv)) + return EXIT_FAILURE; + TALER_OS_init (); + ret = GNUNET_PROGRAM_run (argc, + argv, + "taler-config [OPTIONS]", + gettext_noop ( + "Manipulate Taler configuration files"), + options, + &GNUNET_CONFIGURATION_config_tool_run, + &cs); + GNUNET_free_nz ((void *) argv); + GNUNET_CONFIGURATION_config_settings_free (&cs); + if (GNUNET_NO == ret) + return 0; + if (GNUNET_SYSERR == ret) + return EXIT_INVALIDARGUMENT; + return cs.global_ret; +} + + +/* end of taler-config.c */ diff --git a/src/util/sync-config.in b/src/util/sync-config.in new file mode 100644 index 0000000..b1c4971 --- /dev/null +++ b/src/util/sync-config.in @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -eu + +if ! type gnunet-config >/dev/null; then + echo "$0 needs gnunet-config to be installed" + exit 1 +fi + +GC=`which gnunet-config` +SO=`ls %libdir%/libsyncutil.so.* | sort -n | tail -n1` +export LD_PRELOAD=${LD_PRELOAD:-}:${SO} +exec gnunet-config "$@" |