diff options
author | Kerin Millar <kfm@plushkava.net> | 2021-03-11 06:11:12 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2021-03-11 06:11:12 +0000 |
commit | 57c3b63a002a67aad884624fc89fe57c50e94eb5 (patch) | |
tree | 54e707ca2ef3b09edafecd25ce97f84290530ccb /net-irc/irker/files/irkerd.initd | |
parent | sci-libs/gdal: add 3.2.2, add CPU_FLAGS_X86_* (diff) | |
download | gentoo-57c3b63a002a67aad884624fc89fe57c50e94eb5.tar.gz gentoo-57c3b63a002a67aad884624fc89fe57c50e94eb5.tar.bz2 gentoo-57c3b63a002a67aad884624fc89fe57c50e94eb5.zip |
net-irc/irker: remove bashisms from init script
Quote the ${parameter:=word} expansions (SC2223), while removing two
that are spurious.
Remove the -z test which does absolutely nothing. It can never be true,
because IRKERD_USER will always contain something. As an aside, the
"nobody" account is not intended for running services. If ever the test
is re-instated, it should be carried out _before_ checkpath is invoked,
for reasons that should be obvious.
Remove the use of the [[ keyword in favour of the POSIX test command
(SC3010).
Employ a vastly improved method of conveying the user-specified options.
Obviously, POSIX sh doesn't support arrays so we must still perform
word-splitting upon IRKERD_OPTS. However, potential pathname expansion
can still be suppressed with set -f, so let's do that.
Next, proceed to assemble a list of positional parameters using the set
builtin. This completely eliminates the possibility for word-splitting
and pathname expansion to be performed upon the other IRKERD_*
variables, instead conveying them verbatim. Note that the start function
is altered to define a ( ... ) compound command, so that the effects of
set -f do not persist beyond the intended scope of the function.
Closes: https://bugs.gentoo.org/760869
Signed-off-by: Kerin Millar <kfm@plushkava.net>
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-irc/irker/files/irkerd.initd')
-rw-r--r-- | net-irc/irker/files/irkerd.initd | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/net-irc/irker/files/irkerd.initd b/net-irc/irker/files/irkerd.initd index 6417d45ebf8e..9a02708e2eec 100644 --- a/net-irc/irker/files/irkerd.initd +++ b/net-irc/irker/files/irkerd.initd @@ -2,32 +2,27 @@ # Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -: ${pidfile:=/run/${RC_SVCNAME}.pid} - -: ${IRKERD_NICK:=} -: ${IRKERD_PASSWORD:=} -: ${IRKERD_USER:=nobody} +: "${pidfile:=/run/${RC_SVCNAME}.pid}" +: "${IRKERD_USER:=nobody}" depend() { use net } -start () { - if [[ ${IRKERD_LOGFILE} ]] ; then +start() ( + if [ -n "${IRKERD_LOGFILE}" ] ; then checkpath -f \ -o "${IRKERD_USER}" \ "${IRKERD_LOGFILE}" \ || return 1 fi - if [[ -z "${IRKERD_USER}" ]] ; then - die "IRKERD_USER is mandatory" - fi - - [[ -n "${IRKERD_LOGLEVEL}" ]] && IRKERD_OPTS="${IRKERD_OPTS} -d ${IRKERD_LOGLEVEL}" - [[ -n "${IRKERD_LOGFILE}" ]] && IRKERD_OPTS="${IRKERD_OPTS} -l ${IRKERD_LOGFILE}" - [[ -n "${IRKERD_NICK}" ]] && IRKERD_OPTS="${IRKERD_OPTS} -n ${IRKERD_NICK}" - [[ -n "${IRKERD_PASSWORD}" ]] && IRKERD_OPTS="${IRKERD_OPTS} -p ${IRKERD_PASSWORD}" + set -f + set -- ${IRKERD_OPTS} + [ -n "${IRKERD_LOGLEVEL}" ] && set -- "$@" -d "${IRKERD_LOGLEVEL}" + [ -n "${IRKERD_LOGFILE}" ] && set -- "$@" -l "${IRKERD_LOGFILE}" + [ -n "${IRKERD_NICK}" ] && set -- "$@" -n "${IRKERD_NICK}" + [ -n "${IRKERD_PASSWORD}" ] && set -- "$@" -p "${IRKERD_PASSWORD}" ebegin "Starting ${RC_SVCNAME}" start-stop-daemon --start \ @@ -35,6 +30,6 @@ start () { --user "${IRKERD_USER}" \ --make-pidfile --pidfile "${pidfile}" \ --exec /usr/bin/irkerd \ - -- ${IRKERD_OPTS} < /dev/null + -- "$@" < /dev/null eend $? -} +) |