From a4fc24b20d685320e34c71913a20bcfc056ce484 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Mon, 17 Dec 2018 22:59:31 +0000
Subject: [PATCH] Handling of recreating files and directories works now fine (opens a file dialog with the restored items).

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
index cc85168..8aca808 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
@@ -1,13 +1,23 @@
 package de.micromata.borgbutler.config;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import de.micromata.borgbutler.BorgCommands;
 import lombok.Getter;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
 public class Configuration {
+    private Logger log = LoggerFactory.getLogger(Configuration.class);
+    /**
+     * Default dir name for restoring archives.
+     */
+    private static final String RESTORE_DIRNAME = "restore";
     @Getter
     private String borgCommand = "borg";
     /**
@@ -17,6 +27,15 @@
     @JsonProperty("cache_archive_content_max_disc_size_mb")
     private int cacheArchiveContentMaxDiscSizeMB = 100;
 
+    /**
+     * Default is restore inside BorgButler's home dir (~/.borgbutler/restore).
+     */
+    @Getter
+    @JsonProperty("restore_dir")
+    private String restoreDirPath;
+    @JsonIgnore
+    private File restoreHomeDir;
+
     @Getter
     @JsonProperty("repo-configs")
     private List<BorgRepoConfig> repoConfigs = new ArrayList<>();
@@ -36,4 +55,18 @@
         }
         return null;
     }
+
+    public File getRestoreHomeDir() {
+        if (restoreHomeDir == null) {
+            if (StringUtils.isNotBlank(restoreDirPath)) {
+                restoreHomeDir = new File(restoreDirPath);
+            } else {
+                restoreHomeDir = new File(ConfigurationHandler.getInstance().getWorkingDir(), RESTORE_DIRNAME);
+            }
+            if (!restoreHomeDir.exists()) {
+                log.info("Creating dir '" + restoreHomeDir.getAbsolutePath() + "' for restoring backup files and directories.");
+            }
+        }
+        return restoreHomeDir;
+    }
 }

--
Gitblit v1.10.0