#!/bin/bash
# By David PA7LIM 25 March 2026
#
#  chmod +x install_linux_arm64.sh
#  sudo ./install_linux_arm64.sh
#
set -e

INSTALL_DIR="/usr/local/ambe3003"
BINARY_URL="https://software.pa7lim.nl/AMBEServer/AMBEServer3003/AMBEServer3003_linux_arm64"
BINARY_NAME="AMBEServer3003"
SERVICE_NAME="ambeserver3003"

echo "== Creating directory =="
mkdir -p "$INSTALL_DIR"

echo "== Downloading binary =="
curl -L "$BINARY_URL" -o "$INSTALL_DIR/$BINARY_NAME"

echo "== Setting permissions =="
chmod +x "$INSTALL_DIR/$BINARY_NAME"

echo "== Creating config.ini =="
cat > "$INSTALL_DIR/config.ini" <<EOF
[SERIAL]
comport=/dev/ttyUSB0

[AMBEServer]
UDPPort1=2460
UDPPort2=2461
UDPPort3=2462

[LOG]
debug=0
logfile=AMBEServer3003.log
EOF

echo "== Creating systemd service =="
cat > /etc/systemd/system/${SERVICE_NAME}.service <<EOF
[Unit]
Description=AMBE Server 3003
After=network.target

[Service]
Type=simple
WorkingDirectory=${INSTALL_DIR}
ExecStart=${INSTALL_DIR}/${BINARY_NAME} ${INSTALL_DIR}/config.ini
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
EOF

echo "== Reloading systemd =="
systemctl daemon-reexec
systemctl daemon-reload

echo "== Enabling service =="
systemctl enable ${SERVICE_NAME}.service

echo "== Restarting service =="
systemctl restart ${SERVICE_NAME}.service

echo "== Done! Service status: =="
systemctl status ${SERVICE_NAME}.service --no-pager
