#!/usr/bin/env bash
# ======================================================================
#
# DEPLOYMENT CLIENT :: CHECK STATUS
#
# ----------------------------------------------------------------------
# 2023-12-11  v0.1  <axel.hahn@iml.unibe.ch>  first lines...
# ======================================================================

# ----------------------------------------------------------------------
# CONFIG
# ----------------------------------------------------------------------
cd $( dirname $0 )
selfdir=$( /bin/pwd )
logdir=/var/log/imldeployment-client
tmpfile=/tmp/deploystatus.log

typeset -i iErrors=0
typeset -i iCount=0

# ----------------------------------------------------------------------
# FUNCTIONS
# ----------------------------------------------------------------------

# get a list profiles by searching a config.sh
# no param
function getprofiles(){
    find ${selfdir}/profiles/ -name "config.sh" | rev | cut -f 2 -d "/" | rev
}

# ----------------------------------------------------------------------
# MAIN
# ----------------------------------------------------------------------

for myprofile in $( getprofiles )
do
    iCount+=1
    logfile=$( ls -tr1 ${logdir}/${myprofile}__* | tail -1 )
    if grep "^OK: ${myprofile}$" $logfile >/dev/null; then
        echo "OK: $myprofile - $logfile"
    else
        iErrors+=1
        echo "ERROR: $myprofile - $logfile"
        echo "    Last lines:"
        tail -10 "${logfile}" | sed "s#^#    #g"
        echo
    fi
done > "$tmpfile"
if [ $iCount -eq 0 ]; then
    echo "Deployment No profile was created yet."
else
    if [ $iErrors -eq 0 ]; then
        echo -n "OK"
    else
        echo -n "ERROR"
    fi
    echo " Deployment ... Profiles: $iCount ... Errors: $iErrors"
    cat "$tmpfile"
fi
rm -f "$tmpfile"
exit $iErrors

# ----------------------------------------------------------------------