Rearrange config upgrade so upgrading a v6 config file
disables adaptive gain. This is needed for the case where a v5 package with an unmodified config file is upgraded. dpkg will install the v6 default config file automatically so it will already be a v6 config by the time that upgrade-config runs, but we do still need to go in and disable adaptive gain.
This commit is contained in:
parent
abf8fa2b00
commit
14e6d5c3fa
|
|
@ -64,14 +64,8 @@ then
|
|||
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() {
|
||||
process_v5_options() {
|
||||
while [ $# -gt 0 ]
|
||||
do
|
||||
opt="$1"
|
||||
|
|
@ -99,36 +93,37 @@ process_options() {
|
|||
*) EXTRA_OPTIONS="$EXTRA_OPTIONS ${opt}" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# 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
|
||||
}
|
||||
|
||||
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 <<EOF
|
||||
if [ "$CONFIG_STYLE" = "5" ]
|
||||
then
|
||||
echo "Generating a v6-style config from the v5-style config in $OLDCONFIG" >&2
|
||||
|
||||
# nb: all values either derived from env vars or the package defaults
|
||||
process_v5_options $RECEIVER_OPTIONS $DECODER_OPTIONS $NET_OPTIONS $JSON_OPTIONS
|
||||
FROMCONFIG=$PACKAGECONFIG
|
||||
cat >>$SEDSCRIPT <<EOF
|
||||
s@^ENABLED=.*@ENABLED=${ENABLED}@
|
||||
s@^RECEIVER=.*@RECEIVER=${RECEIVER}@
|
||||
s@^RECEIVER_SERIAL=.*@RECEIVER_SERIAL="${RECEIVER_SERIAL}"@
|
||||
|
|
@ -143,12 +138,26 @@ s@^NET_BEAST_INPUT_PORTS=.*@NET_BEAST_INPUT_PORTS=${NET_BEAST_INPUT_PORTS}@
|
|||
s@^NET_BEAST_OUTPUT_PORTS=.*@NET_BEAST_OUTPUT_PORTS=${NET_BEAST_OUTPUT_PORTS}@
|
||||
s@^JSON_LOCATION_ACCURACY=.*@JSON_LOCATION_ACCURACY=${JSON_LOCATION_ACCURACY}@
|
||||
s@^EXTRA_OPTIONS=.*@EXTRA_OPTIONS="$EXTRA_OPTIONS"@
|
||||
EOF
|
||||
|
||||
else
|
||||
# Existing config file doesn't seem to be a v5, just turn off adaptive gain settings
|
||||
# as this is an upgrade but otherwise leave it unchanged. (This happens when
|
||||
# there were no changes made by the user to the config file before upgrading; dpkg
|
||||
# will install the new v6 default config file automatically in that case)
|
||||
FROMCONFIG=$OLDCONFIG
|
||||
fi
|
||||
|
||||
# All upgrades get adaptive gain defaulting to off, to preserve the behaviour of
|
||||
# existing installs. New installs using the package defaults will default to on.
|
||||
echo "Disabling adaptive gain in $OLDCONFIG as this is an upgrade from pre-v6" >&2
|
||||
cat >>$SEDSCRIPT <<EOF
|
||||
s@^ADAPTIVE_DYNAMIC_RANGE=.*@ADAPTIVE_DYNAMIC_RANGE=no@
|
||||
s@^ADAPTIVE_BURST=.*@ADAPTIVE_BURST=no@
|
||||
EOF
|
||||
|
||||
# substitute into the standard config file to generate our customized config
|
||||
if ! sed -f $SEDSCRIPT <$PACKAGECONFIG >$NEWCONFIG
|
||||
# substitute into the config file template to generate our customized config
|
||||
if ! sed -f $SEDSCRIPT <$FROMCONFIG >$NEWCONFIG
|
||||
then
|
||||
echo "Something went wrong trying to upgrade $OLDCONFIG, giving up.." >&2
|
||||
exit 1
|
||||
|
|
|
|||
Loading…
Reference in New Issue