Compare commits

...

4 Commits

Author SHA1 Message Date
mag37
ae53fe2cc7 pushbullet template version bump. 2024-01-20 10:38:11 +01:00
mag37
722fb90ce2 pushbullet info 2024-01-20 10:36:41 +01:00
mag37
18947a462d Added pushbullet template.
Suggested and contributed by [@arpanghosh8453](https://github.com/arpanghosh8453)
2024-01-20 10:33:32 +01:00
mag37
e331dda080 Added a simple progress bar 2024-01-17 20:26:18 +01:00
3 changed files with 51 additions and 5 deletions

View File

@@ -17,12 +17,12 @@
___
## :bell: Changelog
- **v0.3.6**: Added pushbullet template.
- **v0.3.5**: Added a simple progress bar for the registry checkup.
- **v0.3.4**: Added ntfy.sh template and error message on registry fail.
- **v0.3.3**: Added Apprise template and the option `-i` inform - to send notifications.
- **v0.3.2**: Added a notify function to wrap a notify-script, currently DSM/Ssmtp + template script.
- **v0.3.1**: Addded option `-m` , monochrome mode - no printf color codes.
- **v0.3.0**: Added option `-d N`, age (days) new images have to be before being pulled and updated.
- **v0.2.6**: regctl check / download logic changed. Now using the scripts directory as primary location.
___
## :nut_and_bolt: Dependencies
@@ -84,6 +84,8 @@ Current templates:
- Apprise (with it's [multitude](https://github.com/caronc/apprise#supported-notifications) of notifications)
- both native [caronc/apprise](https://github.com/caronc/apprise) and the standalone [linuxserver/docker-apprise-api](https://github.com/linuxserver/docker-apprise-api)
- Read the [QuickStart](extras/apprise_quickstart.md)
- [ntfy.sh](https://ntfy.sh/) - HTTP-based pub-sub notifications.
- [Pushbullet](https://www.pushbullet.com/) - connecting different devices with cross-platform features.
Further additions are welcome - suggestions or PR!
<sub><sup>Initiated and first contributed by [yoyoma2](https://github.com/yoyoma2).</sup></sub>

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
VERSION="v0.3.4"
### ChangeNotes: Added ntfy.sh template and error message on registry fail.
VERSION="v0.3.6"
### ChangeNotes: Added a Pushbullet template.
Github="https://github.com/mag37/dockcheck"
RawUrl="https://raw.githubusercontent.com/mag37/dockcheck/main/dockcheck.sh"
@@ -128,6 +128,17 @@ datecheck() {
fi
}
progress_bar() {
QueCurrent="$1"
QueTotal="$2"
((Percent=100*${QueCurrent}/${QueTotal}))
((Complete=50*${Percent}/100)) # change first number for width (50)
((Left=50-${Complete})) # change first number for width (50)
BarComplete=$(printf "%${Complete}s" | tr " " "#")
BarLeft=$(printf "%${Left}s" | tr " " "-")
[[ $QueTotal == $QueCurrent ]] || printf "\r[%s%s] %s/%s " $BarComplete $BarLeft $QueCurrent $QueTotal
[[ $QueTotal == $QueCurrent ]] && printf "\r[%b%s%b] %s/%s \n" $c_teal $BarComplete $c_reset $QueCurrent $QueTotal
}
### Version check & initiate self update
[[ "$VERSION" != "$LatestRelease" ]] && { printf "New version available! Local: %s - Latest: %s \n Change Notes: %s \n" "$VERSION" "$LatestRelease" "$LatestChanges" ; [[ -z "$AutoUp" ]] && self_update_select ; }
@@ -190,11 +201,16 @@ if [[ -n ${Excludes[*]} ]] ; then
printf "\n"
fi
# Variables for progress_bar function
DocCount=$(docker ps --filter "name=$SearchName" --format '{{.Names}}' | wc -l)
RegCheckQue=0
### Check the image-hash of every running container VS the registry
for i in $(docker ps $Stopped --filter "name=$SearchName" --format '{{.Names}}') ; do
((RegCheckQue+=1))
progress_bar $RegCheckQue $DocCount
### Looping every item over the list of excluded names and skipping:
for e in "${Excludes[@]}" ; do [[ "$i" == "$e" ]] && continue 2 ; done
printf ". "
RepoUrl=$(docker inspect "$i" --format='{{.Config.Image}}')
LocalHash=$(docker image inspect "$RepoUrl" --format '{{.RepoDigests}}')
### Checking for errors while setting the variable:
@@ -301,3 +317,4 @@ else
fi
exit 0

27
notify_pushbullet.sh Normal file
View File

@@ -0,0 +1,27 @@
### DISCLAIMER: This is a third party addition to dockcheck - best effort testing.
#
# Copy/rename this file to notify.sh to enable the notification snippet.
# Required receiving services must already be set up.
# Requires jq installed and in PATH.
# Modify to fit your setup - set Url and Token.
send_notification() {
Updates=("$@")
UpdToString=$( printf "%s\n" "${Updates[@]}" )
FromHost=$(hostname)
# platform specific notification code would go here
printf "\nSending pushbullet notification\n"
MessageTitle="$FromHost - updates available."
# Setting the MessageBody variable here.
MessageBody="Containers on $FromHost with updates available: $UpdToString"
# Modify to fit your setup:
PushUrl="https://api.pushbullet.com/v2/pushes"
PushToken="Your Pushbullet token here"
# Requires jq to process json data
jq -n --arg title "$MessageTitle" --arg body "$MessageBody" '{body: $body, title: $title, type: "note"}' | curl -sS -o /dev/null --show-error --fail -X POST -H "Access-Token: $PushToken" -H "Content-type: application/json" $PushUrl -d @-
}