diff --git a/dockcheck.sh b/dockcheck.sh index 1d822a7..a797d99 100755 --- a/dockcheck.sh +++ b/dockcheck.sh @@ -14,6 +14,8 @@ ScriptWorkDir="$(dirname "$ScriptPath")" LatestRelease="$(curl -s -r 0-50 $RawUrl | sed -n "/VERSION/s/VERSION=//p" | tr -d '"')" LatestChanges="$(curl -s -r 0-200 $RawUrl | sed -n "/ChangeNotes/s/### ChangeNotes: //p")" +[ -s $ScriptWorkDir/notify.sh ] && source $ScriptWorkDir/notify.sh + ### Help Function: Help() { echo "Syntax: dockcheck.sh [OPTION] [part of name to filter]" @@ -232,6 +234,7 @@ fi if [[ -n ${GotUpdates[*]} ]] ; then printf "\n%bContainers with updates available:%b\n" "$c_yellow" "$c_reset" [[ -z "$AutoUp" ]] && options || printf "%s\n" "${GotUpdates[@]}" + [[ $(type -t send_notification) == function ]] && send_notification ${GotUpdates[@]} fi ### Optionally get updates if there's any diff --git a/notify_DSM.sh b/notify_DSM.sh new file mode 100644 index 0000000..e2b3f2d --- /dev/null +++ b/notify_DSM.sh @@ -0,0 +1,29 @@ +### DISCLAIMER: This is a third party addition to dockcheck - best effort testing. +# Copy/rename this file to notify.sh to enable email notifications on synology DSM +# Modify to your liking - changing SendMailTo and Subject and content. + +send_notification() { +Updates=("$@") +UpdToString=$( printf "%s\n" "${Updates[@]}" ) +# change this to your usual destination for synology DSM notification emails +SendMailTo=me@mydomain.com +FromHost=$(hostname) + +printf "\nSending email notification\n" + +ssmtp $SendMailTo << __EOF +From: "$FromHost" <$SendMailTo> +date:$(date -R) +To: <$SendMailTo> +Subject: [diskstation] Some docker containers need to be updated +Content-Type: text/plain; charset=UTF-8; format=flowed +Content-Transfer-Encoding: 7bit + +The following docker containers on $FromHost need to be updated: + +$UpdToString + + From $FromHost + +__EOF +} diff --git a/notify_generic.sh b/notify_generic.sh new file mode 100644 index 0000000..7c52c33 --- /dev/null +++ b/notify_generic.sh @@ -0,0 +1,13 @@ +### DISCLAIMER: This is a third party addition to dockcheck - best effort testing. +# Copy/rename this file to notify.sh to enable email/text notifications +# generic sample, the "Hello World" of notification addons + +send_notification() { + Updates=("$@") + UpdToString=$( printf "%s\n" "${Updates[@]}" ) + FromHost=$(hostname) + + # platform specific notification code would go here + printf "\n%bGeneric notification addon:%b" "$c_green" "$c_reset" + printf "\nThe following docker containers on %s need to be updated:\n%s\n" "$FromHost" "$UpdToString" +}