skyview/debian/DEBIAN/postinst

73 lines
3.1 KiB
Text
Raw Normal View History

#!/bin/bash
set -e
case "$1" in
configure)
# Create skyview-adsb user and group if they don't exist
if ! getent group skyview-adsb >/dev/null 2>&1; then
addgroup --system --quiet skyview-adsb
fi
if ! getent passwd skyview-adsb >/dev/null 2>&1; then
adduser --system --ingroup skyview-adsb --home /var/lib/skyview-adsb \
--no-create-home --disabled-password --quiet skyview-adsb
fi
# Create directories with proper permissions
mkdir -p /var/lib/skyview-adsb /var/log/skyview-adsb >/dev/null 2>&1 || true
chown skyview-adsb:skyview-adsb /var/lib/skyview-adsb /var/log/skyview-adsb >/dev/null 2>&1 || true
chmod 755 /var/lib/skyview-adsb /var/log/skyview-adsb >/dev/null 2>&1 || true
# Create database directory for skyview user (not skyview-adsb)
mkdir -p /var/lib/skyview >/dev/null 2>&1 || true
if getent passwd skyview >/dev/null 2>&1; then
chown skyview:skyview /var/lib/skyview >/dev/null 2>&1 || true
else
# Create skyview user for database management
if ! getent group skyview >/dev/null 2>&1; then
addgroup --system --quiet skyview
fi
adduser --system --ingroup skyview --home /var/lib/skyview \
--no-create-home --disabled-password --shell /bin/false --quiet skyview
chown skyview:skyview /var/lib/skyview >/dev/null 2>&1 || true
fi
chmod 755 /var/lib/skyview >/dev/null 2>&1 || true
# Set permissions on config files
if [ -f /etc/skyview-adsb/config.json ]; then
chown root:skyview-adsb /etc/skyview-adsb/config.json >/dev/null 2>&1 || true
chmod 640 /etc/skyview-adsb/config.json >/dev/null 2>&1 || true
fi
# Handle systemd services
systemctl daemon-reload >/dev/null 2>&1 || true
# Check if main service was previously enabled
if systemctl is-enabled skyview-adsb >/dev/null 2>&1; then
# Service was enabled, restart it
systemctl restart skyview-adsb >/dev/null 2>&1 || true
fi
# Only restart database timer if it was already enabled
if systemctl is-enabled skyview-database-update.timer >/dev/null 2>&1; then
systemctl restart skyview-database-update.timer >/dev/null 2>&1 || true
fi
# Initialize database on first install (but don't auto-enable timer)
if [ ! -f /var/lib/skyview/skyview.db ]; then
echo "Initializing SkyView database..."
sudo -u skyview /usr/bin/skyview-data update >/dev/null 2>&1 || true
echo "Database initialized with safe (public domain) data."
echo ""
echo "To enable automatic weekly updates:"
echo " systemctl enable --now skyview-database-update.timer"
echo ""
echo "To import additional data sources:"
echo " skyview-data list"
echo " skyview-data import <source>"
fi
;;
esac
exit 0