#!/bin/sh # This script runs during upgrade from pre-6.0 to try to # update /etc/default/dump1090-fa to the new-style # config. if [ $# -lt 2 ] then echo "syntax: $0 path-to-config path-to-package-defaults" >&2 exit 2 fi OLDCONFIG="$1" NEWCONFIG="${OLDCONFIG}.v6-upgrade" BACKUPCONFIG="${OLDCONFIG}.pre-v6-upgrade" PACKAGECONFIG="$2" if [ ! -f $OLDCONFIG ] then echo "$OLDCONFIG does not exist, nothing to upgrade" >&2 exit 0 fi if [ ! -f $PACKAGECONFIG ] then echo "$PACKAGECONFIG does not exist, cannot continue" >&2 exit 1 fi if [ -f $BACKUPCONFIG ] then echo "$BACKUPCONFIG already exists, I'm not going to clobber it" >&2 exit 1 fi # set some assumed defaults (5.0 dump1090 binary defaults if no command-line options are given) ENABLED="no" RECEIVER="rtlsdr" RECEIVER_SERIAL="" RECEIVER_GAIN="50" WISDOM="" ERROR_CORRECTION="no" MAX_RANGE="" NET_RAW_INPUT_PORTS="30001" NET_RAW_OUTPUT_PORTS="30002" NET_SBS_OUTPUT_PORTS="30003" NET_BEAST_INPUT_PORTS="30004,30104" NET_BEAST_OUTPUT_PORTS="30005" EXTRAS_NET_RO_SIZE="0" EXTRAS_NET_RO_INTERVAL="0" EXTRAS_NET_HEARTBEAT="60" # read the old config . "$OLDCONFIG" # if there's no CONFIG_STYLE, infer a version if [ -z "$CONFIG_STYLE" ] then if [ -n "$RECEIVER_OPTIONS" -o -n "$DECODER_OPTIONS" -o -n "$NET_OPTIONS" -o -n "$JSON_OPTIONS" ] then CONFIG_STYLE=5 else CONFIG_STYLE=6 fi fi if [ "$CONFIG_STYLE" = "6" ] then echo "$OLDCONFIG seems to already be a new-style config, nothing to upgrade" >&2 exit 0 fi # process all the options from the old config file and accumulate settings in env vars process_options() { while [ $# -gt 0 ] do opt="$1" shift case "$opt" in --device-type) RECEIVER="$1"; shift ;; --device-index) RECEIVER_SERIAL="$1"; shift ;; --gain) RECEIVER_GAIN="$1"; shift ;; --max-range) MAX_RANGE="$1"; shift ;; --fix) ERROR_CORRECTION="yes" ;; --net) ;; --net-ri-port) NET_RAW_INPUT_PORTS="$1"; shift ;; --net-ro-port) NET_RAW_OUTPUT_PORTS="$1"; shift ;; --net-sbs-port) NET_SBS_OUTPUT_PORTS="$1"; shift ;; --net-bi-port) NET_BEAST_INPUT_PORTS="$1"; shift ;; --net-bo-port) NET_BEAST_OUTPUT_PORTS="$1"; shift ;; --json-location-accuracy) JSON_LOCATION_ACCURACY="$1"; shift ;; --wisdom) WISDOM="$1"; shift ;; --ppm) EXTRAS_PPM="$1"; shift ;; --net-heartbeat) EXTRAS_NET_HEARTBEAT="$1"; shift ;; --net-ro-size) EXTRAS_NET_RO_SIZE="$1"; shift ;; --net-ro-interval) EXTRAS_NET_RO_INTERVAL="$1"; shift ;; *) EXTRA_OPTIONS="$EXTRA_OPTIONS ${opt}" ;; esac done } process_options $RECEIVER_OPTIONS $DECODER_OPTIONS $NET_OPTIONS $JSON_OPTIONS # update EXTRA_OPTIONS for any non-default special settings if [ "${EXTRAS_PPM:-0}" != "0" ]; then EXTRA_OPTIONS="$EXTRA_OPTIONS --ppm $EXTRAS_PPM"; fi if [ "${EXTRAS_NET_HEARTBEAT:-60}" != "60" ]; then EXTRA_OPTIONS="$EXTRA_OPTIONS --net-heartbeat $EXTRAS_NET_HEARTBEAT"; fi if [ "${EXTRAS_NET_RO_SIZE:-1300}" != "1300" ]; then EXTRA_OPTIONS="$EXTRA_OPTIONS --net-ro-size $EXTRAS_NET_RO_SIZE"; fi if [ "${EXTRAS_NET_RO_INTERVAL:-1300}" != "0.2" ]; then EXTRA_OPTIONS="$EXTRA_OPTIONS --net-ro-interval $EXTRAS_NET_RO_INTERVAL"; fi # special case for device index 0 (the default) if [ "${RECEIVER_SERIAL}" = "0" ]; then RECEIVER_SERIAL=""; fi # special case for gain -10 -> gain 60 if [ "${RECEIVER_GAIN}" = "-10" ]; then RECEIVER_GAIN="60"; fi # special case for ports set to zero (new config uses a blank entry for that) if [ "${NET_RAW_INPUT_PORTS}" = "0" ]; then NET_RAW_INPUT_PORTS=""; fi if [ "${NET_RAW_OUTPUT_PORTS}" = "0" ]; then NET_RAW_OUTPUT_PORTS=""; fi if [ "${NET_SBS_INPUT_PORTS}" = "0" ]; then NET_SBS_OUTPUT_PORTS=""; fi if [ "${NET_BEAST_INPUT_PORTS}" = "0" ]; then NET_BEAST_INPUT_PORTS=""; fi if [ "${NET_BEAST_OUTPUT_PORTS}" = "0" ]; then NET_BEAST_OUTPUT_PORTS=""; fi SEDSCRIPT=$(mktemp -t dump1090XXX.sed) # set up the sedscript # nb: all values either derived from env vars or the package defaults, # except for adaptive gain settings which we default to off on upgraded # installs. New installs using the package defaults will default to on. cat >>$SEDSCRIPT <$NEWCONFIG then echo "Something went wrong trying to upgrade $OLDCONFIG, giving up.." >&2 exit 1 fi rm $SEDSCRIPT # back up the old config and install the new config if ! cp -p $OLDCONFIG $BACKUPCONFIG then echo "Something went wrong trying to back up $OLDCONFIG, giving up.." >&2 exit 1 fi if ! mv $NEWCONFIG $OLDCONFIG then echo "Something went wrong trying to install the new version of $NEWCONFIG, giving up.." >&2 exit 1 fi # all good cat >&2 <