From 7c2035e219c39f14792ae44e92b2c708ea47f6e0 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Mon, 14 Jan 2019 23:19:27 +0000
Subject: [PATCH] Auto-install borg...

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java                  |    5 +++++
 borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgInstallation.java     |    4 ++--
 borgbutler-server/src/test/java/de/micromata/borgbutler/server/BorgInstallationTest.java |    2 ++
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
index f9ed76e..e1fc3b4 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
@@ -10,6 +10,7 @@
 import de.micromata.borgbutler.utils.DateUtils;
 import de.micromata.borgbutler.utils.ReplaceUtils;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.Validate;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -40,6 +41,10 @@
             return null;
         }
         String version = jobResult.getResultObject();
+        String[] strs = StringUtils.split(version);
+        if (strs != null) {
+            version = strs[strs.length - 1]; // Work arround: borg returns "borg-macosx64 1.1.8" as version string (command is included).
+        }
         log.info("Borg version: " + version);
         return version;
     }
diff --git a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgInstallation.java b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgInstallation.java
index 6b743f4..fe933ac 100644
--- a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgInstallation.java
+++ b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgInstallation.java
@@ -27,13 +27,13 @@
 
     public void initialize() {
         Configuration configuration = ConfigurationHandler.getConfiguration();
-        if (BorgCommands.version() != null) {
+        if (version(configuration) != null) {
             return;
         }
         String[] binary = getBinary(RunningMode.getOSType());
         File file = download(binary);
         configuration.setBorgCommand(file.getAbsolutePath());
-        if (BorgCommands.version() != null) {
+        if (version(configuration) != null) {
             return;
         }
         log.warn("No working borg version found. Please configure a borg version with minimal version '" + configuration.getMinimumRequiredBorgVersion() + "'.");
diff --git a/borgbutler-server/src/test/java/de/micromata/borgbutler/server/BorgInstallationTest.java b/borgbutler-server/src/test/java/de/micromata/borgbutler/server/BorgInstallationTest.java
index 933ad4d..e454387 100644
--- a/borgbutler-server/src/test/java/de/micromata/borgbutler/server/BorgInstallationTest.java
+++ b/borgbutler-server/src/test/java/de/micromata/borgbutler/server/BorgInstallationTest.java
@@ -17,6 +17,8 @@
         ConfigurationHandler.getConfiguration().setBorgCommand("hurzel");
         BorgInstallation borgInstallation = BorgInstallation.getInstance();
         borgInstallation.initialize();
+        ConfigurationHandler.getConfiguration().setBorgCommand("borg");
+        borgInstallation.initialize();
     }
 
     @Test

--
Gitblit v1.10.0