#!/bin/sh
# auto-update-periodic
#
# mx-updater helper script to set apt periodic update/upgrade frequencies.
# Writes /etc/apt/apt.conf.d/52mx-updater-periodic with the chosen values.
# Removes any existing 51unattended-upgrades-enable/disable files so the
# new file is the sole authority for these two keys.
#
# Must be run as root (via pkexec).
#
# Usage: auto-update-periodic <update_freq> <upgrade_freq>
#   update_freq:  APT::Periodic::Update-Package-Lists (0=disabled, N[smhd]=interval, always)
#   upgrade_freq: APT::Periodic::Unattended-Upgrade   (0=disabled, N[smhd]=interval, always)

PERIODIC_CONF=/etc/apt/apt.conf.d/52mx-updater-periodic
OLD_ENABLE=/etc/apt/apt.conf.d/51unattended-upgrades-enable
OLD_DISABLE=/etc/apt/apt.conf.d/51unattended-upgrades-disable

usage() {
    echo "Usage: auto-update-periodic <update_freq> <upgrade_freq>" >&2
    echo "  Values: 0=disabled, N=every N days, Ns/Nm/Nh/Nd=with unit, always" >&2
    exit 1
}

is_valid_apt_periodic() {
    [ "$1" = "always" ] && return 0
    echo "$1" | grep -qE '^[0-9]+[smhd]?$'
}

UPDATE_FREQ="$1"
UPGRADE_FREQ="$2"

[ -z "$UPDATE_FREQ" ]  && usage
[ -z "$UPGRADE_FREQ" ] && usage
is_valid_apt_periodic "$UPDATE_FREQ"  || usage
is_valid_apt_periodic "$UPGRADE_FREQ" || usage

if [ "$(id -u)" != "0" ]; then
    echo "auto-update-periodic: must be run as root" >&2
    exit 1
fi

rm -f "$OLD_ENABLE" "$OLD_DISABLE" 2>/dev/null || true

cat > "$PERIODIC_CONF" <<EOF
// mx-updater periodic configuration
// Managed by mx-updater-settings -- do not edit manually.
APT::Periodic::Update-Package-Lists "${UPDATE_FREQ}";
APT::Periodic::Unattended-Upgrade "${UPGRADE_FREQ}";
EOF

echo "Periodic configuration updated: refresh=${UPDATE_FREQ} upgrade=${UPGRADE_FREQ}"
exit 0
