#!/usr/bin/env bash
set -e -o pipefail

arch=$(uname -m)

case $arch in
	"x86_64")
		machine_arch="amd64"
		;;
	"i686"|"i386")
		machine_arch="x86"
		;;
	"aarch64"|"arm64"|"armv8")
		machine_arch="arm64"
		;;
	"armv7l")
		machine_arch="arm"
		;;
	*)
		echo "Unknown machine architecture: $arch"
		exit 1
		;;
esac

if [ -z "$UNINSTALL" ]; then
    if [ ! -f /etc/grlx/sprout ]; then
        mkdir -p /etc/grlx
        if [ -z "$FARMERINTERFACE" ]; then
            echo "FARMERINTERFACE is not set. Please set it to the domain or IP of your farmer."
            exit 1
        fi
        if [ -z "$FARMERAPIPORT" ]; then
            FARMERAPIPORT=5405
        fi
        if [ -z "$FARMERBUSPORT" ]; then
            FARMERBUSPORT=5406
        fi

        cat << EOF > /etc/grlx/sprout
farmerinterface: $FARMERINTERFACE
farmerbusport: $FARMERBUSPORT
farmerapiport: $FARMERAPIPORT
EOF
fi
chmod 600 /etc/grlx/sprout

systemctl stop grlx-sprout || true
curl -s "https://artifacts.grlx.dev/linux/${machine_arch}/v1.0.5/sprout" > /usr/local/bin/grlx-sprout
chmod +x /usr/local/bin/grlx-sprout

cat << EOF > /etc/systemd/system/grlx-sprout.service
[Unit]
Description=grlx sprout
Documentation=https://docs.grlx.dev
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/grlx-sprout
Restart=always
RestartSec=30
User=root
Group=root

[Install]
WantedBy=multi-user.target
EOF

    systemctl daemon-reload
    systemctl enable --now grlx-sprout
else
	systemctl disable --now grlx-sprout
	rm -f /etc/systemd/system/grlx-sprout.service
	rm -f /usr/local/bin/grlx-sprout
	rm -rf /etc/grlx
    rm -rf /var/cache/grlx
fi
