From 53299b4114d02190d306c921d1685ebb3e6ad7c8 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sun, 13 Jan 2019 23:33:45 +0000
Subject: [PATCH] Demo mode...
---
borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java | 27 +++++++++++++++++++++------
1 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java
index 3ed2295..32ee46f 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java
@@ -1,6 +1,7 @@
package de.micromata.borgbutler.demo;
import de.micromata.borgbutler.BorgCommand;
+import de.micromata.borgbutler.BorgJob;
import de.micromata.borgbutler.config.BorgRepoConfig;
import de.micromata.borgbutler.config.ConfigurationHandler;
import de.micromata.borgbutler.config.Definitions;
@@ -16,6 +17,7 @@
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
+import java.util.Scanner;
public class DemoRepos {
private static Logger log = LoggerFactory.getLogger(DemoRepos.class);
@@ -43,23 +45,36 @@
return StringUtils.startsWith(idOrName, DEMO_IDENTIFIER);
}
- public static JobResult<String> execute(BorgCommand command) {
+ public static JobResult<String> execute(BorgJob job) {
+ BorgCommand command = job.getCommand();
StringBuilder sb = new StringBuilder();
- if (command.getArchive() != null) {
+ boolean archive = command.getArchive() != null;
+ if (archive) {
sb.append("archive-");
} else {
sb.append("repo-");
}
sb.append(command.getCommand());
- if (command.getArchive() != null) {
+ if (archive) {
sb.append("-").append(command.getArchive());
}
sb.append(".json.gz");
String file = sb.toString();
+ log.info("Loading demo archive from '" + file + "'...");
try (InputStream inputStream = new GzipCompressorInputStream(DemoRepos.class.getResourceAsStream("/demodata/" + file))) {
- StringWriter writer = new StringWriter();
- IOUtils.copy(inputStream, writer, Definitions.STD_CHARSET);
- return new JobResult<String>().setResultObject(writer.toString()).setStatus(JobResult.Status.OK);
+ if (archive && "list".equals(command.getCommand())) {
+ try (Scanner scanner = new Scanner(inputStream)) {
+ while (scanner.hasNextLine()) {
+ String line = scanner.nextLine();
+ job.processStdOutLine(line, 0);
+ }
+ return new JobResult<String>().setStatus(JobResult.Status.OK);
+ }
+ } else {
+ StringWriter writer = new StringWriter();
+ IOUtils.copy(inputStream, writer, Definitions.STD_CHARSET);
+ return new JobResult<String>().setResultObject(writer.toString()).setStatus(JobResult.Status.OK);
+ }
} catch (IOException ex) {
log.error("Error while reading demo file '" + file + "': " + ex.getMessage() + ".");
return null;
--
Gitblit v1.10.0