#!/bin/bash
set -euo pipefail

CONFIG_FILE="/opt/microavia/config/rc.conf"
# ------------------------------------------------
echo "[1/3] create rc.conf, device and modem identity"
# ------------------------------------------------
while true; do
    read -rp "Enter device serial number: " SERIAL
    [[ -n "$SERIAL" ]] && break
    echo "Serial number cannot be empty."
done

while true; do
    read -rp "Enter modem NET-ID: " NET_ID
    [[ -n "$NET_ID" ]] && break
    echo "NET-ID cannot be empty."
done

mkdir -p "$(dirname "$CONFIG_FILE")"

cat > "$CONFIG_FILE" <<EOF
SERIAL $SERIAL
NET-ID $NET_ID
EOF

chmod 755 "$CONFIG_FILE"
echo "Configuration saved to $CONFIG_FILE"
HOSTNAME="${SERIAL//./-}"
echo "Setting hostname to: $HOSTNAME"
hostnamectl set-hostname "$HOSTNAME"
if grep -q '^127.0.1.1' /etc/hosts; then
    sed -i "s/^127\.0\.1\.1.*/127.0.1.1\t${HOSTNAME}/" /etc/hosts
else
    echo -e "127.0.1.1\t${HOSTNAME}" >> /etc/hosts
fi
echo "Created $CONFIG_FILE"
# ------------------------------------------------
echo "[2/3] Enable microhard modem setup"
# ------------------------------------------------
systemctl enable /etc/systemd/system/microhard-setup.service >/dev/null || true
if systemctl start --wait microhard-setup.service; then
    echo "Modem setup succeeded."
else
    echo "Modem setup failed."
    exit 1
fi
# ------------------------------------------------
echo "[3/3] Enabling SSH and assigning static IP"
# ------------------------------------------------
systemctl enable --now ssh
netplan apply
systemctl enable /etc/systemd/system/microavia-radio-socat.service >/dev/null || true

echo "===== RC setup complete. Current session will be restarted ====="
sudo systemctl restart gdm3