#!/bin/bash # postinst script for dump1090 # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package NAME=dump1090-mutability CONFIGFILE=/etc/default/$NAME TEMPLATECONFIG=/usr/share/$NAME/config-template CRONFILE=/etc/cron.d/$NAME TEMPLATECRON=/usr/share/$NAME/cron-template SEDSCRIPT=$CONFIGFILE.sed.tmp subvar_raw() { # $1 = db var value # $2 = config var name # if not present in the config file, add it test -z "$1" || grep -Eq "^ *$2=" $CONFIGFILE || echo "$2=" >> $CONFIGFILE # add to the sedscript echo "s@^ *$2=.*@$2=\"$1\"@" >>$SEDSCRIPT } subvar() { # $1 = db var name # $2 = config var name db_get $NAME/$1 subvar_raw "$RET" "$2" } subvar_yn() { # $1 = db var name # $2 = config var name db_get $NAME/$1 if [ "$RET" = "true" ]; then subvar_raw "yes" "$2"; else subvar_raw "no" "$2"; fi } case "$1" in configure) . /usr/share/debconf/confmodule # Generate config file, if it doesn't exist. if [ ! -e $CONFIGFILE ]; then tail -n +4 $TEMPLATECONFIG >$CONFIGFILE fi rm -f $SEDSCRIPT subvar_yn auto-start START_DUMP1090 subvar run-as-user DUMP1090_USER subvar log-file LOGFILE subvar rtlsdr-device DEVICE subvar rtlsdr-gain GAIN subvar rtlsdr-ppm PPM subvar_yn rtlsdr-oversample OVERSAMPLE subvar_yn decode-fixcrc FIX_CRC subvar_yn decode-phase-enhance PHASE_ENHANCE subvar_yn decode-aggressive AGGRESSIVE subvar decode-lat LAT subvar decode-lon LON subvar decode-max-range MAX_RANGE subvar net-http-port HTTP_PORT subvar net-ri-port RAW_INPUT_PORT subvar net-ro-port RAW_OUTPUT_PORT subvar net-bi-port BEAST_INPUT_PORT subvar net-bo-port BEAST_OUTPUT_PORT subvar net-sbs-port SBS_OUTPUT_PORT subvar net-fatsv-port FATSV_OUTPUT_PORT subvar net-heartbeat NET_HEARTBEAT subvar net-out-size NET_OUTPUT_SIZE subvar net-out-interval NET_OUTPUT_INTERVAL subvar net-buffer NET_BUFFER subvar net-bind-address NET_BIND_ADDRESS subvar stats-interval STATS_INTERVAL subvar json-dir JSON_DIR subvar json-interval JSON_INTERVAL subvar json-location-accuracy JSON_LOCATION_ACCURACY subvar_yn log-decoded-messages LOG_DECODED_MESSAGES subvar extra-args EXTRA_ARGS cp -a -f $CONFIGFILE $CONFIGFILE.tmp sed -f $SEDSCRIPT < $CONFIGFILE > $CONFIGFILE.tmp mv -f $CONFIGFILE.tmp $CONFIGFILE rm $SEDSCRIPT db_get $NAME/run-as-user RUNAS="$RET" if ! getent passwd "$RUNAS" >/dev/null then adduser --system --home /usr/share/$NAME --no-create-home --quiet "$RUNAS" fi # create log if missing; change ownership if needed so the cronjob works db_get $NAME/log-file touch $RET chown $RUNAS $RET # create cronjob if ! test -e $CRONFILE; then echo "Creating cronjob in $CRONFILE to periodically update the aircraft database.." >&2 MIN=$(($RANDOM % 60)) tail -n +4 $TEMPLATECRON | sed -e "s/@USER@/$RUNAS/g" -e "s/@MIN@/$MIN/g" >$CRONFILE fi # update the DB echo "Updating aircraft database now.." mkdir -m 0755 -p /var/cache/$NAME chown $RUNAS /var/cache/$NAME su $RUNAS -s /bin/bash -c /usr/share/$NAME/update-aircraft-database.sh || \ echo "Aircraft database update failed. It will be retried periodically from cron." >&2 # config file changed between 1.14 and 1.15 if [ -e /etc/lighttpd/conf-enabled/89-dump1090.conf ]; then if dpkg --compare-versions "$2" le "1.14"; then echo "Restarting lighttpd.." >&2 service lighttpd restart || echo "Warning: lighttpd failed to restart." >&2 fi fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# if [ "$1" = "configure" ]; then db_stop; fi exit 0