From 5e39c0040ddde260831a5b9f73c0bbfec3738f94 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Tue, 13 Apr 2021 23:20:23 +0000
Subject: [PATCH] Docker...
---
borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgVersion.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 49 insertions(+), 4 deletions(-)
diff --git a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgVersion.java b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgVersion.java
index a134915..0f4c91f 100644
--- a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgVersion.java
+++ b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/BorgVersion.java
@@ -1,8 +1,14 @@
package de.micromata.borgbutler.server;
+import org.apache.commons.lang3.StringUtils;
+
public class BorgVersion {
- private String binariesDownloadVersion = "1.1.8";
- private String binariesDownloadUrl = "https://github.com/borgbackup/borg/releases/download/" + binariesDownloadVersion + "/";
+ public static final String BORG_DEFAULT_DOWNLOAD_VERSION = "1.1.16";
+
+ private static final String BORG_VERSION = BORG_DEFAULT_DOWNLOAD_VERSION;
+
+ private String binariesDownloadVersion = BORG_DEFAULT_DOWNLOAD_VERSION;
+
private String[][] borgBinaries = {
{"freebsd64", "FreeBSD 64"},
{"linux32", "Linux 32"},
@@ -11,6 +17,10 @@
private String minimumRequiredBorgVersion = "1.1.8";
+ public String getBinariesDownloadUrl() {
+ return "https://github.com/borgbackup/borg/releases/download/" + binariesDownloadVersion + "/";
+ }
+
/**
* One of the values "macosx64", "linux64" etc. for using a binary provided by BorgButler or null / "manual" for
* using a manual installed borg version.
@@ -33,14 +43,21 @@
return this.binariesDownloadVersion;
}
- public String getBinariesDownloadUrl() {
- return this.binariesDownloadUrl;
+ public void setBinariesDownloadVersion(String binariesDownloadVersion) {
+ if (StringUtils.isNotBlank(binariesDownloadVersion)) {
+ this.binariesDownloadVersion = binariesDownloadVersion;
+ } else {
+ this.binariesDownloadVersion = BORG_DEFAULT_DOWNLOAD_VERSION;
+ }
}
public String[][] getBorgBinaries() {
return this.borgBinaries;
}
+ /**
+ * @return The minimal required borg version (installed on host).
+ */
public String getMinimumRequiredBorgVersion() {
return this.minimumRequiredBorgVersion;
}
@@ -80,4 +97,32 @@
this.statusMessage = statusMessage;
return this;
}
+
+ public static int compareVersions(String thisVersion, String otherVersion) {
+ String[] thisParts = checkVersion(thisVersion);
+ String[] otherParts = checkVersion(otherVersion);
+ int length = Math.max(thisParts.length, otherParts.length);
+ for (int i = 0; i < length; i++) {
+ int thisPart = i < thisParts.length ?
+ Integer.parseInt(thisParts[i]) : 0;
+ int thatPart = i < otherParts.length ?
+ Integer.parseInt(otherParts[i]) : 0;
+ if (thisPart < thatPart)
+ return -1;
+ if (thisPart > thatPart)
+ return 1;
+ }
+ return 0;
+ }
+
+ // https://stackoverflow.com/questions/198431/how-do-you-compare-two-version-strings-in-java
+ public static String[] checkVersion(String version) {
+ if (version == null) {
+ throw new IllegalArgumentException("Version can not be null");
+ }
+ if (!version.matches("[0-9]+(\\.[0-9]+)*")) {
+ throw new IllegalArgumentException("Invalid version format: " + version);
+ }
+ return version.split("\\.");
+ }
}
--
Gitblit v1.10.0