aboutsummaryrefslogtreecommitdiff
path: root/stow/waybar/.local/bin/checkbackup
diff options
context:
space:
mode:
authorMatt Singleton <matt@xcolour.net>2024-11-06 15:58:54 -0600
committerMatt Singleton <matt@xcolour.net>2024-11-06 15:58:54 -0600
commitbd9538a24a9207b4bd88f71956a817b5b042874b (patch)
tree711e5747dae7dc668344a3e42d8856e560819842 /stow/waybar/.local/bin/checkbackup
parent2be10e1420afea58f859ea4ec5b7565ac1849de2 (diff)
support scripts
Diffstat (limited to 'stow/waybar/.local/bin/checkbackup')
-rwxr-xr-xstow/waybar/.local/bin/checkbackup34
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"