| .gitignore | ●●●●● patch | view | raw | blame | history | |
| README.adoc | ●●●●● patch | view | raw | blame | history | |
| borgbutler-core/out/test/resources/log4j.properties | ●●●●● patch | view | raw | blame | history | |
| borgbutler-core/src/main/java/de/micromata/borgbutler/Main.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-core/src/main/java/de/micromata/borgbutler/config/ConfigurationHandler.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-core/src/test/java/de/micromata/borgbutler/config/ConfigHandlerTest.java | ●●●●● patch | view | raw | blame | history |
.gitignore
@@ -35,3 +35,4 @@ *.ipr *.iml *.iws borgbutler-core/build README.adoc
New file @@ -0,0 +1,21 @@ Micromata BorgBackup-Butler =========================== Micromata GmbH, Kai Reinhard :toc: :toclevels: 4 Copyright (C) 2018 ifdef::env-github,env-browser[:outfilesuffix: .adoc] == For developers === Lombok required ==== Installing Lombok in IntelliJ [.text-center] https://github.com/mplushnikov/lombok-intellij-plugin[Lombok Intellij plugin description^] + [.text-left] Or go to [.text-center] https://projectlombok.org/[Lombok home page^] + [.text-left] borgbutler-core/out/test/resources/log4j.properties
New file @@ -0,0 +1,8 @@ log4j.rootLogger=info, stdout log4j.logger.de.micromata.paypal=debug log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n borgbutler-core/src/main/java/de/micromata/borgbutler/Main.java
@@ -1,16 +1,7 @@ package de.micromata.borgbutler; import de.micromata.borgbutler.config.BorgRepo; import de.micromata.borgbutler.config.Configuration; import de.micromata.borgbutler.config.ConfigurationHandler; public class Main { public static void main(String[] args) { System.out.println("Hello world."); Configuration configuration = ConfigurationHandler.getConfiguration(); BorgRepo repo = new BorgRepo(); repo.setName("Hetzner-cloud").setPasswordCommand("dslfds").setRepo("sdfls"); configuration.add(repo); ConfigurationHandler.getInstance().write(); } } borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
@@ -2,11 +2,12 @@ import lombok.Getter; import java.util.ArrayList; import java.util.List; public class Configuration { @Getter private List<BorgRepo> repos; private List<BorgRepo> repos = new ArrayList<>(); public void add(BorgRepo repo) { repos.add(repo); borgbutler-core/src/main/java/de/micromata/borgbutler/config/ConfigurationHandler.java
@@ -1,6 +1,8 @@ package de.micromata.borgbutler.config; import de.micromata.borgbutler.json.JsonUtils; import lombok.AccessLevel; import lombok.Getter; import org.apache.commons.io.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,7 +15,11 @@ private static Logger log = LoggerFactory.getLogger(ConfigurationHandler.class); private static ConfigurationHandler instance = new ConfigurationHandler(); private static final String CONFIG_FILENAME = ".borgbutler.json"; private static final String CONFIG_BACKUP_FILENAME = ".borgbutler-bak.json"; @Getter(AccessLevel.PACKAGE) private File configFile; @Getter(AccessLevel.PACKAGE) private File backupConfigFile; private Configuration configuration = new Configuration(); public static ConfigurationHandler getInstance() { @@ -25,6 +31,7 @@ } public void read() { log.info("Reading config file '" + configFile.getAbsolutePath() + "'"); try { String json = FileUtils.readFileToString(configFile, Charset.forName("UTF-8")); this.configuration = JsonUtils.fromJson(Configuration.class, json); @@ -35,8 +42,14 @@ } public void write() { String json = JsonUtils.toJson(configuration); String json = JsonUtils.toJson(configuration, true); try { if (configFile.exists()) { // Create backup-file first: log.info("Creating backup file first: '" + backupConfigFile.getAbsolutePath() + "'"); FileUtils.copyFile(configFile, backupConfigFile); } log.info("Writing config file '" + configFile.getAbsolutePath() + "'"); FileUtils.write(configFile, json, Charset.forName("UTF-8")); } catch (IOException ex) { log.error("Error while trying to write config file: " + configFile.getAbsolutePath() + ": " + ex.getMessage(), ex); @@ -45,5 +58,6 @@ private ConfigurationHandler() { configFile = new File(System.getProperty("user.home"), CONFIG_FILENAME); backupConfigFile = new File(System.getProperty("user.home"), CONFIG_BACKUP_FILENAME); } } borgbutler-core/src/test/java/de/micromata/borgbutler/config/ConfigHandlerTest.java
New file @@ -0,0 +1,19 @@ package de.micromata.borgbutler.config; import org.apache.commons.io.FileUtils; import org.junit.jupiter.api.Test; import java.io.File; import java.io.IOException; public class ConfigHandlerTest { @Test void readWriteTest() throws IOException { File origConfigFile = new File(System.getProperty("user.home"), ".borgbutler-orig.json"); FileUtils.copyFile(ConfigurationHandler.getInstance().getConfigFile(), origConfigFile); Configuration configuration = ConfigurationHandler.getConfiguration(); ConfigurationHandler.getInstance().read(); ConfigurationHandler.getInstance().write(); FileUtils.copyFile(origConfigFile, ConfigurationHandler.getInstance().getConfigFile()); } }