#!/bin/bash
#
# Piduino mbpoll setup v1.2.0
# Created by Enrico Buttignol (ebuttignol@messana.tech)
# Copyright by Messana Hydronic Technologies
#
# NOTE:
#   This script installs the mbpoll utility from apt.piduino.org repository,
#   then securely deletes itself.
#
# Usage:
#   sudo ./mht-piduino-mbpoll-setup
#

set -e

# Colors
COLOR_INFO='\033[0;96m'
COLOR_EXECUTED='\033[0;32m'
COLOR_WARNING='\033[33m'
NOCOLOR='\033[0m'

# Variables
KEYRING_PATH="/usr/share/keyrings/piduino-archive-keyring.gpg"
REPO_LIST="/etc/apt/sources.list.d/piduino.list"
REPO_URL="http://apt.piduino.org"
DISTRO="stretch"   # required for amd64 according to piduino docs

# Import repository key if missing
if [ ! -f "$KEYRING_PATH" ]; then
    printf "${COLOR_INFO}[i]${NOCOLOR} Importing repository key...\n"
    wget -qO- http://www.piduino.org/piduino-key.asc | sudo gpg --dearmor -o "$KEYRING_PATH"
else
    printf "${COLOR_INFO}[i]${NOCOLOR} Repository key already exists, skipping.\n"
fi

# Check and configure repository
if [ -f "$REPO_LIST" ]; then
    if ! grep -q " $DISTRO " "$REPO_LIST"; then
        printf "${COLOR_WARNING}[!]${NOCOLOR} Repository exists but not set to '$DISTRO'. Overwriting...\n"
        echo "deb [signed-by=$KEYRING_PATH] $REPO_URL $DISTRO piduino" | sudo tee "$REPO_LIST" >/dev/null
    else
        printf "${COLOR_INFO}[i]${NOCOLOR} Repository already set to '$DISTRO', skipping.\n"
    fi
else
    printf "${COLOR_INFO}[i]${NOCOLOR} Adding repository...\n"
    echo "deb [signed-by=$KEYRING_PATH] $REPO_URL $DISTRO piduino" | sudo tee "$REPO_LIST" >/dev/null
fi

# Update packages
printf "${COLOR_INFO}[i]${NOCOLOR} Updating package lists...\n"
sudo apt update -y

# Install mbpoll
printf "${COLOR_INFO}[i]${NOCOLOR} Installing mbpoll...\n"
sudo apt install -y mbpoll || {
    printf "${COLOR_WARNING}[!]${NOCOLOR} Unable to install mbpoll. Check distribution/architecture compatibility.\n"
    exit 1
}

printf "${COLOR_EXECUTED}[✔]${NOCOLOR} Installation complete!\n"

# Self-delete with shred
SCRIPT_PATH="$(realpath "$0")"
printf "${COLOR_INFO}[i]${NOCOLOR} Deleting script securely...\n"
shred -u "$SCRIPT_PATH"
