#!/bin/bash
#
# Name: logwatch.sh
# Version: 0.1.6
# Autor: Nastra (SmartApfel Forum)
# Credits: Vielen Dank an @NAB (Debianforum) und @det (SmartApfel Forum)!!!
# Beschreibung: System und Update Zusammenfassung erstellen mit benachrichtig über Telegram
# http://forum.smartapfel.de/forum/thread/1403-homebridge-tool-s-zum-system-update-und-instanzen-überwachen-mit-telegram/


################################### Hinweise ################################

# Allgemein:
# Das Skript ist ausgelegt mit der hbridge.cfg Config eingerichtet zu werden, es kann aber auch ohne diese benutzt werden wenn die entsprechenden Daten hier im Skript angegeben werden.
# Das Skript ist Multiuser tauglich und funktioniert auch mit anderen Usern als "pi" dafür  (sudo nano /etc/systemd/system/logwatch.service) aufrufen und die im Abschnitt [Service] User=pi gegen User=xxxx ersetzen. 
# Ebenfalls sollte darauf geachtet werden das im Usernamen vom Benutzerkonto keine Großbuchstaben verwendet werden.

# Abschnitt Nachrichtentext:
# Hier wird der Text für die Telegram Nachricht festgelegt.

# Abschnitt Telegram Config:
# Hier wird der Telegram Token und die ChatID eingetragen.


################### Distribution Raspbian / Debian feststellen ###################

Distri=`lsb_release -s -i`


########################### User feststellen ############################

toolDir=$HOME/hbridge_install


###################### Pfad Config Datei (hbridge.cfg) ######################

[ -f $toolDir/hbridge.cfg ] && . $toolDir/hbridge.cfg


############################## Skriptvorgaben ##############################

day=$(date +%Y-%m-%d)
filename=$toolDir/logwatch/$day-logwatch.txt

[ ! -d $toolDir/logwatch ] && /bin/mkdir -p $toolDir/logwatch


############################## Nachrichtentext ##############################
######### Achtung! Keine Leerzeichen verwenden bei Nachrichtentext ##########

#Systemzusammenfassung erstellen
nachricht1=Systemzusammenfassung

#Update prüfen npm 
nachricht2=Updateübersicht-npm

#Update prüfen Node
nachricht3=Updateübersicht-node

#Update prüfen Pakete
nachricht4=Updateübersicht-stabel

#Upgrade prüfen
nachricht5=Updateübersicht-unstabel


############################## Telegram Config ###############################

#TToken_lwatch= 			# Telegram API Token, logwatch senden
#TChatID_lwatch= 			# Telegram CHAT ID für "bot Chat", logwatch senden


#Hier nichts ändern!
if [ "$TChatID_lwatch" == "" -o "$TToken_lwatch" == "" ]; then
echo -e "Bitte die Variablen \"TToken_lwatch\" und \"TChatID_lwatch\" in der Datei \"/home/UserName/hbridge_install/hbridge.cfg\" setzen !" 2>&1
exit 254
fi


###################### Systemzusammenfassung vorbereiten ########################

/usr/bin/sudo apt update


###################### Systemzusammenfassung erstellen ########################

/usr/sbin/logwatch --output file --filename $filename


############################## Logdatei versenden ############################

/usr/bin/curl -F chat_id=$TChatID_lwatch -F document=@"$filename" -F caption="$nachricht1" https://api.telegram.org/bot$TToken_lwatch/sendDocument


################# Logdatei löschen die älter als +7 Tage sind ################

/usr/bin/find $toolDir/logwatch/* -mtime +7 -exec /bin/rm {} \;


############################## Updateübersicht-npm #############################

/usr/bin/curl -s -X POST https://api.telegram.org/bot$TToken_lwatch/sendMessage -d chat_id="$TChatID_lwatch" -d text="$nachricht2

$(sudo npm-check -g)"


############################## Updateübersicht-node #############################

/usr/bin/curl -s -X POST https://api.telegram.org/bot$TToken_lwatch/sendMessage -d chat_id="$TChatID_lwatch" -d text="$nachricht3

Installiert:
$(sudo node -v)

Verfügbar LTS:
$(sudo n --lts)

Verfügbar Latest:
v$(sudo n --latest)"

########################### Updateübersicht-stabel (Raspbian & Debian) #############################

/usr/bin/curl -s -X POST https://api.telegram.org/bot$TToken_lwatch/sendMessage -d chat_id="$TChatID_lwatch" -d text="$nachricht4

$(sudo apt list --upgradable  -a |grep -v von)"


########################### Updateübersicht-Kernel (Debian) ###########################

if [ "$Distri" == "Debian" ]; then
/usr/bin/curl -s -X POST https://api.telegram.org/bot$TToken_lwatch/sendMessage -d chat_id="$TChatID_lwatch" -d text="$nachricht5

Installiert:
$(dpkg --list | grep linux-image)

Ausstehend:
$(sudo apt -s full-upgrade linux-image-amd64)"


########################### Updateübersicht-unstabel (Raspbian) ###########################

elif [ "$Distri" == "Raspbian" ]; then
/usr/bin/curl -s -X POST https://api.telegram.org/bot$TToken_lwatch/sendMessage -d chat_id="$TChatID_lwatch" -d text="$nachricht5 

$(sudo JUST_CHECK=1 rpi-update)"

fi