diff options
Diffstat (limited to '')
-rwxr-xr-x | backends/nc-backend.sh (renamed from contrib/nc-backend.sh) | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/contrib/nc-backend.sh b/backends/nc-backend.sh index aac5c20b..7280f86a 100755 --- a/contrib/nc-backend.sh +++ b/backends/nc-backend.sh @@ -1,5 +1,10 @@ #!/usr/bin/env bash +# SPDX-License-Identifier: GPL-3.0-or-later + +# This is a simple backend database proxy, written in BASH, using the nc command. +# Run the script without any parameters for help. + MODE="${1}" MY_PORT="${2}" BACKEND_HOST="${3}" @@ -25,7 +30,7 @@ mync() { listen_save_replay_forever() { local file="${1}" port="${2}" real_backend_host="${3}" real_backend_port="${4}" ret delay=1 started ended - while [ 1 ] + while true do log "Starting nc to listen on port ${port} and save metrics to ${file}" @@ -35,7 +40,7 @@ listen_save_replay_forever() { if [ -s "${file}" ] then - if [ ! -z "${real_backend_host}" -a ! -z "${real_backend_port}" ] + if [ ! -z "${real_backend_host}" ] && [ ! -z "${real_backend_port}" ] then log "Attempting to send the metrics to the real backend at ${real_backend_host}:${real_backend_port}" @@ -77,6 +82,7 @@ if [ "${MODE}" = "start" ] # only one can use the same file/port at a time { flock -n 9 + # shellcheck disable=SC2181 if [ $? -ne 0 ] then log "Cannot get exclusive lock on file ${FILE}.lock - Am I running multiple times?" @@ -86,7 +92,7 @@ if [ "${MODE}" = "start" ] # save our PID to the lock file echo "$$" >"${FILE}.lock" - listen_save_replay_forever "${FILE}" ${MY_PORT} ${BACKEND_HOST} ${BACKEND_PORT} + listen_save_replay_forever "${FILE}" "${MY_PORT}" "${BACKEND_HOST}" "${BACKEND_PORT}" ret=$? log "listener exited." @@ -103,11 +109,12 @@ elif [ "${MODE}" = "stop" ] { flock -n 9 + # shellcheck disable=SC2181 if [ $? -ne 0 ] then - pid=$(<${FILE}.lock) + pid=$(<"${FILE}".lock) log "Killing process ${pid}..." - kill -TERM -${pid} + kill -TERM "-${pid}" exit 0 fi |