Assorted shell and Python scripts
1#!/usr/bin/env bash
2#
3# systemd service - /etc/systemd/system/borgbackup-export-desktop.service
4# EnvironmentFile=/etc/borgbackup-export-desktop.env
5#
6# /etc/borgbackup-export-desktop.env
7# HC_PING_URL=
8# RESEND_API_KEY=
9# PATH="${PATH}:/home/linuxbrew/.linuxbrew/bin"
10
11set -euxo pipefail
12
13curl --retry 3 "${HC_PING_URL}/start"
14
15BORG_ARCHIVE=$(borg list /var/naspool/borgbackup/desktop | tail -n 1 | awk '{print $1}')
16ARCHIVE_BASENAME=$(echo "$BORG_ARCHIVE" | cut -d "T" -f 1)
17
18if ! borg export-tar \
19 "/var/naspool/borgbackup/desktop::${BORG_ARCHIVE}" \
20 "/home/jas/staging/${ARCHIVE_BASENAME}.tar"; then
21 curl --retry 3 "${HC_PING_URL}/fail"
22fi
23
24if ! gzip "/home/jas/staging/${ARCHIVE_BASENAME}.tar"; then
25 curl --retry 3 "${HC_PING_URL}/fail"
26fi
27
28if ! rsync -az --delete \
29 "/home/jas/staging/${ARCHIVE_BASENAME}.tar.gz" \
30 "jas@desktop.carp-wyvern.ts.net:/home/jas/proton_drive_staging"; then
31 curl --retry 3 "${HC_PING_URL}/fail"
32else
33 curl --retry 3 "$HC_PING_URL"
34 /home/jas/bin/resend_update.py "Borg archive ${ARCHIVE_BASENAME}.tar.gz is ready" "${ARCHIVE_BASENAME}.tar.gz is ready to be uploaded to Proton Drive."
35fi
36
37rm -f "/home/jas/staging/${ARCHIVE_BASENAME}.tar.gz"
38
39# vim: ts=4 sts=4 sw=4 et ai ft=bash