From 88adbaa990e12d7f713b8230861b244cdf57fff9 Mon Sep 17 00:00:00 2001
From: Jerome Charaoui <jerome@riseup.net>
Date: Fri, 12 Jan 2018 18:07:04 -0500
Subject: [PATCH] [borg] support keephourly option

---
 examples/example.borg   |  3 ++-
 handlers/borg.helper.in | 10 +++++++---
 handlers/borg.in        |  3 ++-
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/examples/example.borg b/examples/example.borg
index 2e7d627..c212ae6 100644
--- a/examples/example.borg
+++ b/examples/example.borg
@@ -29,10 +29,11 @@
 
 [source]
 
-## how many days, weeks and months of data to keep
+## how many hours, days, weeks and months of data to keep
 ## for more info see : borg prune -h
 ##
 ## Default:
+# keephourly = 1
 # keepdaily = 7
 # keepweekly = 4
 # keepmonthly = -1
diff --git a/handlers/borg.helper.in b/handlers/borg.helper.in
index 88c1e64..edc33a8 100644
--- a/handlers/borg.helper.in
+++ b/handlers/borg.helper.in
@@ -252,6 +252,7 @@ do_borg_prune() {
    set -o noglob
    REPLY=
    formBegin "$borg_title - pruning (how many backups to keep)"
+      formItem "hourly" "$borg_keephourly"
       formItem "daily" "$borg_keepdaily"
       formItem "weekly" "$borg_keepweekly"
       formItem "monthly" "$borg_keepmonthly"
@@ -259,9 +260,10 @@ do_borg_prune() {
 
    [ $? = 0 ] || return
    tmp_array=($REPLY)
-   borg_keepdaily=${tmp_array[0]}
-   borg_keepweekly=${tmp_array[1]}
-   borg_keepmonthly=${tmp_array[2]}
+   borg_keephourly=${tmp_array[0]}
+   borg_keepdaily=${tmp_array[1]}
+   borg_keepweekly=${tmp_array[2]}
+   borg_keepmonthly=${tmp_array[3]}
 
    set +o noglob
 
@@ -293,6 +295,7 @@ EOF
    cat >> $next_filename <<EOF
 
 ## for more info see : borg prune -h
+keephourly = $borg_keephourly
 keepdaily = $borg_keepdaily
 keepweekly = $borg_keepweekly
 keepmonthly = $borg_keepmonthly
@@ -357,6 +360,7 @@ borg_wizard() {
    borg_compression=lz4
    borg_encryption=none
    borg_passphrase=
+   borg_keephourly=1
    borg_keepdaily=7
    borg_keepweekly=4
    borg_keepmonthly=-1
diff --git a/handlers/borg.in b/handlers/borg.in
index 85900a8..c20e247 100644
--- a/handlers/borg.in
+++ b/handlers/borg.in
@@ -22,6 +22,7 @@ getconf testconnect yes
 getconf nicelevel 0
 
 setsection source
+getconf keephourly 1
 getconf keepdaily 7
 getconf keepweekly 4
 getconf keepmonthly -1
@@ -134,7 +135,7 @@ fi
 ### REMOVE OLD BACKUPS ###
 
 # borg prune
-prunestr="borg prune --keep-daily $keepdaily --keep-weekly $keepweekly --keep-monthly $keepmonthly $execstr_repository"
+prunestr="borg prune --keep-hourly $keephourly --keep-daily $keepdaily --keep-weekly $keepweekly --keep-monthly $keepmonthly $execstr_repository"
 debug "$prunestr"
 
 if [ $test = 0 ]; then
-- 
GitLab