#!/bin/bash
set -eo pipefail
GREENBOOT_CONFIGURATION_FILE=/etc/greenboot/greenboot.conf
service_started=true
if test -f "$GREENBOOT_CONFIGURATION_FILE"; then
    source $GREENBOOT_CONFIGURATION_FILE
fi

if [ -n "$GREENBOOT_MONITOR_SERVICES" ]; then
    services=($GREENBOOT_MONITOR_SERVICES)
else
    echo "GREENBOOT_MONITOR_SERVICE not found, using default value"
    services=( sshd NetworkManager )
fi

# check all the services listed
for service in "${services[@]}"; do
rc="$(systemctl show -p ActiveState --value $service)"
if [[ $rc != "active" ]]; then
  echo "<0>${service} is ${rc}"
  service_started=false
fi
done

# fail if any of the monitored services failed. This will make boot-complete.target fail.
if ! $service_started ; then
    exit 1
fi
