From 79f30669b3d5f06840374e56a0955599abf3f243 Mon Sep 17 00:00:00 2001
From: Maxime Bombar <bombar@crans.org>
Date: Thu, 3 Dec 2020 03:37:32 +0100
Subject: [PATCH] [borgbackups] Initialize borg repository.

---
 roles/borgbackup-client/tasks/main.yml                     | 6 ++++++
 roles/borgbackup-client/templates/borgmatic/config.yaml.j2 | 7 ++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/roles/borgbackup-client/tasks/main.yml b/roles/borgbackup-client/tasks/main.yml
index cbec0209..f71fce33 100644
--- a/roles/borgbackup-client/tasks/main.yml
+++ b/roles/borgbackup-client/tasks/main.yml
@@ -41,6 +41,12 @@
     owner: root
     group: root
 
+- name: Init borg repository
+  command:
+    cmd: /usr/bin/borgmatic init -e repokey
+  register: borg_init
+  changed_when: '"does not exist" in borg_init.stderr'
+
 - name: Deploy borg cron
   template:
     src: "cron.d/borg.j2"
diff --git a/roles/borgbackup-client/templates/borgmatic/config.yaml.j2 b/roles/borgbackup-client/templates/borgmatic/config.yaml.j2
index 123a57ac..dcd1b36b 100644
--- a/roles/borgbackup-client/templates/borgmatic/config.yaml.j2
+++ b/roles/borgbackup-client/templates/borgmatic/config.yaml.j2
@@ -38,12 +38,17 @@ storage:
     umask: 0077
     lock_wait: 5
     archive_name_format: '{hostname}-{now}'
+{% set extra_init = borg.extra_prune | default([]) %}
 {% set extra_prune = borg.extra_prune | default([]) %}
 {% set extra_create = borg.extra_create | default([]) %}
 {% set extra_check = borg.extra_check | default([]) %}
+{% if extra_init or extra_prune or extra_create or extra_check %}
     extra_borg_options:
+{% endif %}
+{% if extra_init %}
         # Extra command-line options to pass to "borg init".
-        init: --make-parent-dirs {% for cmd in borg.extra_init | default([]) %}--{{ cmd }} {% endfor %}
+        init: {% for cmd in extra_init %}--{{ cmd }} {% endfor %}
+{% endif %}
 {% if extra_prune  %}
         # Extra command-line options to pass to "borg prune".
         prune: {% for cmd in extra_prune  %}--{{ cmd }} {% endfor %}
-- 
GitLab