1
0
Fork 0
mirror of https://github.com/sdr-enthusiasts/docker-adsb-ultrafeeder.git synced 2024-12-26 14:22:00 +00:00
docker-adsb-ultrafeeder/rootfs/etc/s6-overlay/scripts/mlathub

115 lines
4.4 KiB
Text
Raw Normal View History

2023-08-31 02:59:09 +00:00
#!/command/with-contenv bash
2023-04-19 00:36:45 +00:00
# shellcheck shell=bash disable=SC1091,SC2015,SC2016
2023-03-21 19:56:02 +00:00
2024-03-29 23:21:45 +00:00
#---------------------------------------------------------------------------------------------
# Copyright (C) 2023-2024, Ramon F. Kolb (kx1t) and contributors
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# This program 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with this program.
# If not, see <https://www.gnu.org/licenses/>.
#---------------------------------------------------------------------------------------------
2023-04-08 21:07:11 +00:00
source /scripts/common
2023-04-19 00:36:45 +00:00
source /scripts/interpret_ultrafeeder_config
s6wrap=(s6wrap --quiet --timestamps --prepend="$SCRIPT_NAME")
LOGLEVEL="${LOGLEVEL,,}"
LOGLEVEL="${LOGLEVEL:-verbose}"
chk_disabled "$LOGLEVEL" && LOGLEVEL="none" || true
if ! [[ "$LOGLEVEL" =~ ^(verbose|error|none)$ ]]; then
[[ -n "$LOGLEVEL" ]] && "${s6wrap[@]}" --args echo "[WARNING] LOGLEVEL set to an unknown value. Defaulting to \"verbose\"" || true
LOGLEVEL="verbose"
fi
2023-04-08 21:07:11 +00:00
if [[ -z "${MLAT_CONFIG}" ]] && [[ -z "$MLATHUB_NET_CONNECTOR" ]] && [[ ${#MLATHUB_CONF_ARR[@]} == 0 ]] && ! chk_enabled "${MLATHUB_ENABLE}"; then
"${s6wrap[@]}" --args echo "No MLAT servers have been defined in MLAT_CONFIG and no external sources have been defined in MLATHUB_NET_CONNECTOR - no need to start MLATHUB"
stop_service
2023-03-21 19:56:02 +00:00
fi
2023-05-09 15:56:20 +00:00
if chk_enabled "${MLATHUB_DISABLE}"; then
"${s6wrap[@]}" --args echo "MLATHUB is disabled."
stop_service
2023-03-21 19:56:02 +00:00
fi
# Build the readsb command line based on options
MLATHUB_BIN="/usr/local/bin/readsb"
2023-03-22 21:50:49 +00:00
# set some basic options:
2023-03-21 19:56:02 +00:00
MLATHUB_CMD=("--net")
MLATHUB_CMD+=("--quiet")
MLATHUB_CMD+=("--net-only")
MLATHUB_CMD+=("--mlat")
MLATHUB_CMD+=("--forward-mlat")
2023-04-30 12:56:44 +00:00
MLATHUB_CMD+=("--forward-mlat-sbs")
2023-03-21 19:56:02 +00:00
MLATHUB_CMD+=("--net-connector=localhost,30004,beast_out")
2023-03-22 21:50:49 +00:00
# define some more ports:
MLATHUB_CMD+=("--net-sbs-port=${MLATHUB_SBS_OUT_PORT:-31003}")
2023-03-26 17:23:31 +00:00
MLATHUB_CMD+=("--net-bi-port=${MLATHUB_BEAST_IN_PORT:-31004}")
2023-03-22 21:50:49 +00:00
MLATHUB_CMD+=("--net-bo-port=${MLATHUB_BEAST_OUT_PORT:-31005}")
2023-03-30 20:41:09 +00:00
MLATHUB_CMD+=("--net-beast-reduce-out-port=${MLATHUB_BEAST_REDUCE_OUT_PORT:-31006}")
2023-03-21 19:56:02 +00:00
# Add any additional net_connectors:
if [[ -n "$MLATHUB_NET_CONNECTOR" ]]; then
2023-04-19 00:36:45 +00:00
# Strip any extraneous spaces:
MLATHUB_NET_CONNECTOR="${MLATHUB_NET_CONNECTOR#"${MLATHUB_NET_CONNECTOR%%[![:space:]]*}"}" # strip leading spaces
MLATHUB_NET_CONNECTOR="${MLATHUB_NET_CONNECTOR//; /;}" # strip space after semicolon
2023-03-21 19:56:02 +00:00
IFS=';' read -r -a MLATHUB_NET_CONNECTOR_ARRAY <<< "$MLATHUB_NET_CONNECTOR"
for NET_CONNECTOR_ELEMENT in "${MLATHUB_NET_CONNECTOR_ARRAY[@]}"
do
2023-04-19 00:36:45 +00:00
MLATHUB_CMD+=("--net-connector=${NET_CONNECTOR_ELEMENT}")
2023-03-21 19:56:02 +00:00
done
fi
2023-04-19 00:36:45 +00:00
# Handle ULTRAFEEDER_CONFIG / ULTRAFEEDER_NET_CONNECTOR elements relevant to readsb:
[[ "${#MLATHUB_CONF_ARR[@]}" -gt 0 ]] && MLATHUB_CMD+=("${MLATHUB_CONF_ARR[@]}") || true
2023-04-08 21:07:11 +00:00
if chk_enabled "${READSB_DEBUG}"; then
2023-03-21 19:56:02 +00:00
MLATHUB_CMD+=("--debug=$READSB_DEBUG")
fi
if [ -n "${LAT}" ]; then
MLATHUB_CMD+=(--lat "${LAT}")
elif [ -n "${READSB_LAT}" ]; then
MLATHUB_CMD+=(--lat "${READSB_LAT}")
fi
if [ -n "${LONG}" ]; then
MLATHUB_CMD+=(--lon "${LONG}")
elif [ -n "${READSB_LON}" ]; then
MLATHUB_CMD+=(--lon "${READSB_LON}")
fi
# Handle "--max-range=<dist>"
if [[ -n "$READSB_MAX_RANGE" ]]; then
MLATHUB_CMD+=("--max-range=$READSB_MAX_RANGE")
fi
# Handle "--net-connector-delay=<seconds>"
if [[ -n "$READSB_NET_CONNECTOR_DELAY" ]]; then
MLATHUB_CMD+=("--net-connector-delay=$READSB_NET_CONNECTOR_DELAY")
fi
# Handle "--net-heartbeat=<rate>"
2023-04-19 01:29:12 +00:00
MLATHUB_CMD+=("--net-heartbeat=${READSB_NET_HEARTBEAT:-35}")
2023-03-25 19:37:30 +00:00
"${s6wrap[@]}" --args echo "Starting MLATHUB..."
2023-03-21 19:56:02 +00:00
2023-05-03 19:58:08 +00:00
# shellcheck disable=SC2086,SC2069
if [[ "${LOGLEVEL}" == "verbose" ]]; then
exec "${s6wrap[@]}" --args "${MLATHUB_BIN}" "${MLATHUB_CMD[@]}" $MLATHUB_EXTRA_ARGS
elif [[ "${LOGLEVEL}" == "error" ]]; then
exec "${s6wrap[@]}" --ignore=stdout --args "${MLATHUB_BIN}" "${MLATHUB_CMD[@]}" $MLATHUB_EXTRA_ARGS
elif [[ "${LOGLEVEL}" == "none" ]]; then
exec "${s6wrap[@]}" --ignore=stdtout --ignore=stderr --args "${MLATHUB_BIN}" "${MLATHUB_CMD[@]}" $MLATHUB_EXTRA_ARGS
2023-03-27 15:39:27 +00:00
fi