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/config/BorgRepoConfig.java |   43 ++++++++++++++++++++++++++++++++++++-------
 1 files changed, 36 insertions(+), 7 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/BorgRepoConfig.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/BorgRepoConfig.java
index 6000d6b..0ffeecd 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/BorgRepoConfig.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/BorgRepoConfig.java
@@ -1,25 +1,54 @@
 package de.micromata.borgbutler.config;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
 import lombok.Setter;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.ArrayList;
+import java.util.List;
 
 public class BorgRepoConfig {
     /**
      * A name describing this config. Only used for displaying purposes.
      */
-    @Getter @Setter
+    @Getter
+    @Setter
     private String displayName;
-    @Getter @Setter
+    @Getter
+    @Setter
     private String repo;
-    @Getter @Setter
+    @Getter
+    @Setter
     private String rsh;
-    @Getter @Setter
+    @Getter
+    @Setter
     private String passphrase;
-    @Getter @Setter
+    @Getter
+    @Setter
     private String passwordCommand;
-    @Getter @Setter
+    @Getter
+    @Setter
     @JsonIgnore
     private String id;
+
+    public String[] getEnvironmentVariables() {
+        return getEnvironmentVariables(false);
+    }
+
+    public String[] getEnvironmentVariables(boolean showPassphrase) {
+        List<String> variables = new ArrayList<>();
+        addVariable(variables, "BORG_REPO", repo);
+        addVariable(variables, "BORG_RSH", rsh);
+        if (StringUtils.isNotBlank(passphrase)) {
+            addVariable(variables, "BORG_PASSPHRASE", showPassphrase ? passphrase : "******");
+        }
+        addVariable(variables, "BORG_PASSCOMMAND", passwordCommand);
+        return variables.toArray(new String[variables.size()]);
+    }
+
+    private void addVariable(List<String> list, String variable, String value) {
+        if (StringUtils.isBlank(value)) return;
+        list.add(variable + "=" + value);
+    }
 }

--
Gitblit v1.10.0