You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/net-dns/ez-ipupdate/files/ez-ipupdate.initd

94 lines
2.5 KiB

#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
extra_commands="update"
depend() {
need net
after rp-pppoe
}
getconfig() { # 0: no daemon / 1: daemon
local CONF NAME LIST=""
for CONF in /etc/ez-ipupdate/*.conf; do
if [ -f "${CONF}" ]; then
# Don't run configurations that are (not) daemons
grep -q '^[[:space:]]*daemon' "${CONF}"; [ $? -eq $1 ] && continue
# Don't run configurations that run in the foreground
grep -q '^[[:space:]]*foreground' "${CONF}" && continue
# add config to list
NAME="${CONF##*/}"
LIST="${LIST} ${NAME%.*}"
fi
done
echo ${LIST}
}
start() {
local NAME LIST=$(getconfig 1)
if [ -z "${LIST}" ]; then
eerror "You need at least one config file in /etc/ez-ipupdate"
eerror "containing the 'daemon' keyword and no 'foreground' keyword."
return 1
fi
for dir in /var/run/ez-ipupdate /var/cache/ez-ipupdate; do
checkpath -q -d -m 0750 -o ez-ipupd:ez-ipupd ${dir}
done
for NAME in ${LIST}; do
local CONFIG="/etc/ez-ipupdate/${NAME}.conf"
local PIDFILE="/var/run/ez-ipupdate/${NAME}.pid"
local CACHEFILE="/var/cache/ez-ipupdate/${NAME}.cache"
ebegin "Starting ez-ipupdate (${NAME})"
start-stop-daemon -p "${PIDFILE}" --start --quiet --exec /usr/sbin/ez-ipupdate \
--user ez-ipupd:ez-ipupd -- -c "${CONFIG}" -F "${PIDFILE}" -b "${CACHEFILE}"
eend $?
done
return 0 # do not fail
}
stop() {
local PIDFILE NAME
for PIDFILE in /var/run/ez-ipupdate/*.pid; do
if [ -f "${PIDFILE}" ]; then
NAME="${PIDFILE##*/}"
ebegin "Stopping ez-ipupdate (${NAME%.*})"
start-stop-daemon --stop --signal QUIT --quiet --pidfile "${PIDFILE}"
eend $? || rm -f "${PIDFILE}"
else
eerror "No running ez-ipupdate process"
fi
done
return 0 # do not fail
}
update() {
local NAME TEXT LIST=$(getconfig 0)
if [ -z "${LIST}" ]; then
eerror "You need at least one config file in /etc/ez-ipupdate"
eerror "containing no 'daemon' and 'foreground' keyword."
return 1
fi
for NAME in ${LIST}; do
local CONFIG="/etc/ez-ipupdate/${NAME}.conf"
local CACHEFILE="/var/cache/ez-ipupdate/${NAME}.cache"
ebegin "Running ez-ipupdate (${NAME})"
TEXT=$(/usr/sbin/ez-ipupdate -q -R ez-ipupd -c "${CONFIG}" -b "${CACHEFILE}" 2>&1)
if eend $?; then
if [ -n "${TEXT}" ]; then
echo "${TEXT}" | while read line; do einfo " $line"; done
fi
else
if [ -n "${TEXT}" ]; then
echo "${TEXT}" | while read line; do eerror " $line"; done
fi
fi
done
return 0 # do not fail
}