From 7325f6c31e1f7f6bd94a9e01e916de2c355bcae1 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Mon, 07 Jan 2019 00:29:19 +0000
Subject: [PATCH] Environment variables are now built by BorgRepoConfig itself.

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java
index c21034d..38d496a 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java
@@ -93,14 +93,11 @@
             return null;
         }
         Map<String, String> env = EnvironmentUtils.getProcEnvironment();
-        addEnvironmentVariable(env, "BORG_REPO", repoConfig.getRepo());
-        addEnvironmentVariable(env, "BORG_RSH", repoConfig.getRsh());
-        addEnvironmentVariable(env, "BORG_PASSPHRASE", repoConfig.getPassphrase());
-        String passcommand = repoConfig.getPasswordCommand();
-        if (StringUtils.isNotBlank(passcommand)) {
+        String[] variables = repoConfig.getEnvironmentVariables(true);
+        for (String variable : variables) {
             // For MacOS BORG_PASSCOMMAND="security find-generic-password -a $USER -s borg-passphrase -w"
-            passcommand = passcommand.replace("$USER", System.getProperty("user.name"));
-            addEnvironmentVariable(env, "BORG_PASSCOMMAND", passcommand);
+            String environmentVariable = variable.replace("$USER", System.getProperty("user.name"));
+            addEnvironmentVariable(env, environmentVariable);
         }
         return env;
     }
@@ -108,6 +105,10 @@
     @Override
     public BorgJob<?> clone() {
         BorgJob<?> clone = new BorgJob<>();
+        if (command != null) {
+            // Needed for getting environment variables: JsonJob of borgbutler-server.
+            clone.command = new BorgCommand().setRepoConfig(command.getRepoConfig());
+        }
         clone.setUniqueJobNumber(getUniqueJobNumber());
         clone.setTitle(getTitle());
         clone.setExecuteStarted(isExecuteStarted());

--
Gitblit v1.10.0