#!/usr/bin/env bash
# shellcheck disable=all

# Copyright (C) 2021-2022 Zaharia Constantin <constantin.zaharia@progeek.ro>
# Copyright (C) 2021-2022 ProGeek <https://progeek.ro>
# SPDX-License-Identifier: GPL-3.0-or-later

#set -euo pipefail
LC_ALL=C
LC_NUMERIC=C

include () {
    [[ -f $1 ]] && source $1
}

include /var/local/machine/plugins/colors.sh
include /var/local/machine/plugins/functions.sh

# set column width
COLUMNS=3

services=("fail2ban" "ferm" "netdata" "smartd" "lldpd" "chronyd")
# sort services
IFS=$'\n' services=($(sort <<<"${services[*]}"))
unset IFS

service_status=()
# get status of all services
for service in "${services[@]}"; do
    service_status+=($(systemctl is-active "$service"))
done

out=""
for i in ${!services[@]}; do
    # color green if service is active, else red
    if [[ "${service_status[$i]}" == "active" ]]; then
        out+="${services[$i]}:,${GRN}${service_status[$i]}${DEF},"
    else
        out+="${services[$i]}:,${RED}${service_status[$i]}${DEF},"
    fi
    # insert \n every $COLUMNS column
    if [ $((($i+1) % $COLUMNS)) -eq 0 ]; then
        out+="\n"
    fi
done
out+="\n"

printf "\nservices:\n"
printf "$out" | column -ts $',' | sed -e 's/^/  /'