From b6f6258cab9c576586fc77a72328a08aafcbddab Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Fri, 21 Dec 2018 23:28:42 +0000
Subject: [PATCH] Borg version.

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommand.java       |    3 +++
 borgbutler-core/src/main/java/de/micromata/borgbutler/BorgExecutorQueue.java |   17 +++++++++++------
 borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java      |   19 ++++++++++++++++++-
 3 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommand.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommand.java
index 3f24fd9..ae0c148 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommand.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommand.java
@@ -92,6 +92,9 @@
 
     String getRepoArchive() {
         if (archive == null) {
+            if (repoConfig == null) {
+                return null;
+            }
             return repoConfig.getRepo();
         }
         return repoConfig.getRepo() + "::" + archive;
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 af543d1..3599d83 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
@@ -27,6 +27,24 @@
     private static Logger log = LoggerFactory.getLogger(BorgCommands.class);
 
     /**
+     * Executes borg --version
+     *
+     * @return version string.
+     */
+    public static String version() {
+        BorgCommand command = new BorgCommand()
+                .setParams("--version")
+                .setDescription("Getting borg version.");
+        execute(command);
+        if (command.getResultStatus() != BorgCommand.ResultStatus.OK) {
+            return null;
+        }
+        String version = command.getResponse();
+        log.info("Borg version: " + version);
+        return version;
+    }
+
+    /**
      * Executes borg info repository.
      *
      * @param repoConfig
@@ -199,7 +217,6 @@
 
     private static void execute(BorgCommand command) {
         Validate.notNull(command);
-        Validate.notNull(command.getRepoConfig());
         BorgExecutorQueue.getQueue(command.getRepoConfig()).execute(command);
     }
 }
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgExecutorQueue.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgExecutorQueue.java
index 5740743..81124d7 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgExecutorQueue.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgExecutorQueue.java
@@ -29,20 +29,21 @@
 
     public static BorgExecutorQueue getQueue(BorgRepoConfig config) {
         synchronized (queueMap) {
-            BorgExecutorQueue queue = queueMap.get(config.getRepo());
+            String queueName = config != null ? config.getRepo() : "--NO_REPO--";
+            BorgExecutorQueue queue = queueMap.get(queueName);
             if (queue == null) {
                 queue = new BorgExecutorQueue();
-                queueMap.put(config.getRepo(), queue);
+                queueMap.put(queueName, queue);
             }
             return queue;
         }
     }
 
-    private ConcurrentLinkedQueue<BorgCommand> commandQueue = new ConcurrentLinkedQueue<>();
+    //private ConcurrentLinkedQueue<BorgCommand> commandQueue = new ConcurrentLinkedQueue<>();
 
     public void execute(BorgCommand command) {
         synchronized (this) {
-            commandQueue.add(command);
+            //commandQueue.add(command);
             _execute(command);
         }
         /*
@@ -65,7 +66,9 @@
                     cmdLine.addArgument(param);
             }
         }
-        cmdLine.addArgument(command.getRepoArchive());
+        if (command.getRepoArchive() != null) {
+            cmdLine.addArgument(command.getRepoArchive());
+        }
         if (command.getArgs() != null) {
             for (String arg : command.getArgs()) {
                 if (arg != null)
@@ -103,7 +106,9 @@
 
 
     private Map<String, String> getEnvironment(BorgRepoConfig repoConfig) throws IOException {
-        Configuration config = ConfigurationHandler.getConfiguration();
+        if (repoConfig == null) {
+            return null;
+        }
         Map<String, String> env = EnvironmentUtils.getProcEnvironment();
         addEnvironmentVariable(env, "BORG_REPO", repoConfig.getRepo());
         addEnvironmentVariable(env, "BORG_RSH", repoConfig.getRsh());

--
Gitblit v1.10.0