From 17927c9aa491490f2cc052c39112013c4b5f8863 Mon Sep 17 00:00:00 2001
From: Evangelos Foutras <evangelos@foutrelis.com>
Date: Tue, 17 May 2022 18:18:13 +0300
Subject: [PATCH] borg_client: run compact after pruning on borg 1.2

Only doing this on the Hetzner storage box for now; waiting for
rsync.net to upgrade to borg 1.2 so we can enable it there too.
---
 roles/borg_client/defaults/main.yml           | 2 ++
 roles/borg_client/templates/borg-backup.sh.j2 | 5 +++++
 2 files changed, 7 insertions(+)

diff --git a/roles/borg_client/defaults/main.yml b/roles/borg_client/defaults/main.yml
index d08c91f8d..f883497fb 100644
--- a/roles/borg_client/defaults/main.yml
+++ b/roles/borg_client/defaults/main.yml
@@ -4,7 +4,9 @@ backup_hosts:
     dir: "~/repo"
     suffix: ""
     borg_cmd: "borg"
+    compact_after_prune: true
   - host: "ssh://zh1905@zh1905.rsync.net:22"
     dir: "~/backup/{{ inventory_hostname }}"
     suffix: "-offsite"
     borg_cmd: "borg --remote-path=borg1"
+    compact_after_prune: false # not upgraded to borg 1.2 yet
diff --git a/roles/borg_client/templates/borg-backup.sh.j2 b/roles/borg_client/templates/borg-backup.sh.j2
index 16e2d86c4..83d04e74c 100644
--- a/roles/borg_client/templates/borg-backup.sh.j2
+++ b/roles/borg_client/templates/borg-backup.sh.j2
@@ -88,4 +88,9 @@ fi
     -e "$backup_mountdir/var/lib/archbuilddest" \
     -e "$backup_mountdir/var/lib/docker" \
     {{ item['host'] }}/{{ item['dir'] }}::$(date "+%Y%m%d-%H%M%S") "$backup_mountdir"
+
 {{ item['borg_cmd'] }} prune -v {{ item['host'] }}/{{ item['dir'] }} --keep-daily=7 --keep-weekly=4 --keep-monthly=6
+
+{% if item['compact_after_prune'] %}
+{{ item['borg_cmd'] }} compact -v {{ item['host'] }}/{{ item['dir'] }}
+{% endif %}
-- 
GitLab