add logic to move pastincidents to seperate page

This commit is contained in:
mischa 2023-10-21 13:03:21 +00:00
parent e3f8b0efda
commit 9ce8d96b3b
1 changed files with 16 additions and 8 deletions

View File

@ -1,7 +1,7 @@
#!/bin/ksh
#
# Uptime Atomic v2023060401
# https://git.high5.nl/uptimeatomic/
# Uptime Atomic v20231021
# https://code.high5.nl/High5/uptimeatomic
#
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
CONFIGFILE="uptimeatomic.conf"
@ -35,9 +35,14 @@ incidents() {
_date=${1}
_type=${2}
_description=${3}
_file=${4}
[[ ${_type} == "Incident" ]] && color="failed"
[[ ${_type} == "Maintenance" ]] && color="maint"
echo "<p>$(date_incident ${_date}) - <b class='${color}'>${_type}</b><br />${_description}</p>" >> ${_HTMLFILE}
if [ ${_file} == "${PASTINCIDENTSFILE}" ]; then
echo "<p>$(date_incident ${_date}) - <b class='${color}'>${_type}</b><br />${_description}</p>" >> ${_PASTHTMLFILE}
else
echo "<p>$(date_incident ${_date}) - <b class='${color}'>${_type}</b><br />${_description}</p>" >> ${_HTMLFILE}
fi
if [ -n "${_RSSFILE}" ]; then
cat << EOF >> ${_RSSFILE}
<item>
@ -154,7 +159,7 @@ parse_file() {
if [[ ${_file} == *".csv" ]]; then
check "${_col1}" "${_col2}" "${_col3}" "${_col4}" "${_col5}" &
else
incidents "${_col1}" "${_col2}" "${_col3}"
incidents "${_col1}" "${_col2}" "${_col3}" "${_file}"
fi
done < "${_file}"
wait
@ -188,6 +193,7 @@ fi
_TMP="$(mktemp -d)"
mkdir -p "${_TMP}/ok" "${_TMP}/ko" "${_TMP}/maint" || exit 1
_HTMLFILE="${_TMP}/${HTMLFILE}"
_PASTHTMLFILE="${_TMP}/${PASTHTMLFILE}"
[[ -n "${RSSFILE}" ]] && _RSSFILE="${_TMP}/${RSSFILE}"
parse_file "${CHECKFILE}"
@ -195,7 +201,7 @@ parse_file "${CHECKFILE}"
#
# HTML
#
cat << EOF > ${_HTMLFILE}
cat << EOF | tee ${_HTMLFILE} | tee ${_PASTHTMLFILE} >/dev/null
<!DOCTYPE html>
<html lang="en">
<head>
@ -276,19 +282,20 @@ echo "</ul>" >> ${_HTMLFILE}
echo "<p class=small>Last check: $(date -ju '+%FT%T %Z')</p>" >> ${_HTMLFILE}
if [ -s "${PASTINCIDENTSFILE}" ]; then
echo '<h3>Past Incidents / Maintenance</h3>' >> ${_HTMLFILE}
echo '<h2>Past Incidents / Maintenance</h2>' >> ${_PASTHTMLFILE}
parse_file "${PASTINCIDENTSFILE}"
fi
#
# END HTML
#
cat << EOF >> ${_HTMLFILE}
cat << EOF | tee -a ${_HTMLFILE} | tee -a ${_PASTHTMLFILE} >/dev/null
<p class=small>
<a href="https://git.high5.nl/uptimeatomic/">Uptime Atomic</a> loosely based on <a href="https://github.com/bderenzo/tinystatus">Tinystatus</a>
EOF
[[ -n "${_PASTHTMLFILE}" ]] && echo " - <a href='${PASTHTMLFILE}'>Past Incidents</a>" >> ${_HTMLFILE}
[[ -n "${_RSSFILE}" ]] && echo " - <a href='${RSS_URL}/${RSSFILE}'>RSS</a>" >> ${_HTMLFILE}
cat << EOF >> ${_HTMLFILE}
cat << EOF | tee -a ${_HTMLFILE} | tee -a ${_PASTHTMLFILE} >/dev/null
</p>
</div>
</body>
@ -315,4 +322,5 @@ elif [ -n "${RSSFILE}" ]; then
fi
cp ${_HTMLFILE} ${HTMLDIR}/${HTMLFILE}
cp ${_PASTHTMLFILE} ${HTMLDIR}/${PASTHTMLFILE}
rm -r "${_TMP}" 2>/dev/null