diff options
Diffstat (limited to 'stow/waybar/.local/bin/checkbackup')
-rwxr-xr-x | stow/waybar/.local/bin/checkbackup | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/stow/waybar/.local/bin/checkbackup b/stow/waybar/.local/bin/checkbackup new file mode 100755 index 0000000..24393d1 --- /dev/null +++ b/stow/waybar/.local/bin/checkbackup @@ -0,0 +1,34 @@ +#!/bin/bash + +set -euo pipefail + +if command -v systemctl > /dev/null; then + SYSTEMCTLCMD="systemctl" +fi +if command -v jq > /dev/null; then + JQCMD="jq" +fi +if [ -z "${SYSTEMCTLCMD+x}" ] || [ -z "${JQCMD+x}" ]; then + echo "{\"tooltip\": \"requires 'jq' and 'systemctl'\", \"text\": \"\"}" + exit 1 +fi + +backup_metadata_file=/var/cache/borgbackup/last.txt + +if [ ! -f "$backup_metadata_file" ]; then + echo "{\"tooltip\": \"backup metadata missing\", \"text\": \"\"}" + exit 1 +fi + +now_ts="$(date +%s)" +last_backup_ts="$(stat -c %Y "$backup_metadata_file")" + +icon="" +class="" +output="$(cat "$backup_metadata_file")" +if [ $(( now_ts - last_backup_ts)) -gt $(( 25 * 60 * 60 )) ]; then + class="script-error" +fi +# this is a literal expression for `jq` +# shellcheck disable=SC2016 +$JQCMD --unbuffered -n -c '{tooltip: $ARGS.positional[0], text: $ARGS.positional[1], class: $ARGS.positional[2]}' --args "$output" "$icon" "$class" |