From 4d9f922c8396bada73fb0b1e318c8b947f0f606b Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Mon, 25 Jan 2021 19:35:02 +0100 Subject: sfeed_update: allow to reuse the code more easily as an included script This adds a main() function. When the environment variable $SFEED_UPDATE_INCLUDE is set then it will not execute the main handler. The other functions are included and can be reused. This is also useful for unit-testing. --- sfeed_update | 50 +++++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 23 deletions(-) (limited to 'sfeed_update') diff --git a/sfeed_update b/sfeed_update index 9a729e4..7d11f18 100755 --- a/sfeed_update +++ b/sfeed_update @@ -186,26 +186,30 @@ feeds() { echo "See sfeedrc.example for an example." >&2 } -# job counter. -curjobs=0 -# signal number received for parent. -signo=0 -# SIGINT: signal to interrupt parent. -trap -- "sighandler 2" "INT" -# SIGTERM: signal to terminate parent. -trap -- "sighandler 15" "TERM" -# load config file. -loadconfig "$1" -# fetch feeds and store in temporary directory. -sfeedtmpdir="$(mktemp -d '/tmp/sfeed_XXXXXX')" -# make sure path exists. -mkdir -p "${sfeedpath}" -# fetch feeds specified in config file. -feeds -# wait till all feeds are fetched (concurrently). -[ ${signo} -eq 0 ] && wait -# cleanup temporary files etc. -cleanup -# on signal SIGINT and SIGTERM exit with signal number + 128. -[ ${signo} -ne 0 ] && exit $((signo+128)) -exit 0 +main() { + # job counter. + curjobs=0 + # signal number received for parent. + signo=0 + # SIGINT: signal to interrupt parent. + trap -- "sighandler 2" "INT" + # SIGTERM: signal to terminate parent. + trap -- "sighandler 15" "TERM" + # load config file. + loadconfig "$1" + # fetch feeds and store in temporary directory. + sfeedtmpdir="$(mktemp -d '/tmp/sfeed_XXXXXX')" + # make sure path exists. + mkdir -p "${sfeedpath}" + # fetch feeds specified in config file. + feeds + # wait till all feeds are fetched (concurrently). + [ ${signo} -eq 0 ] && wait + # cleanup temporary files etc. + cleanup + # on signal SIGINT and SIGTERM exit with signal number + 128. + [ ${signo} -ne 0 ] && exit $((signo+128)) + exit 0 +} + +[ "${SFEED_UPDATE_INCLUDE}" = "1" ] || main "$@" -- cgit v1.2.3