diff --git a/src/main/java/de/deadlocker8/budgetmaster/Main.java b/src/main/java/de/deadlocker8/budgetmaster/Main.java index c664a3a59a624219e2bd2c16c6cd6e4201218176..8a1b661d5078063e42c07d1d0f63242066635faa 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/Main.java +++ b/src/main/java/de/deadlocker8/budgetmaster/Main.java @@ -1,17 +1,22 @@ package de.deadlocker8.budgetmaster; import de.deadlocker8.budgetmaster.utils.Strings; -import de.tobias.logger.*; -import de.tobias.utils.application.ApplicationUtils; -import de.tobias.utils.application.container.PathType; +import de.tobias.logger.FileOutputOption; +import de.tobias.logger.LogLevel; +import de.tobias.logger.LogLevelFilter; +import de.tobias.logger.Logger; +import de.tobias.utils.io.PathUtils; import de.tobias.utils.util.Localization; import de.tobias.utils.util.SystemUtils; -import org.apache.tomcat.jni.Local; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; import java.util.Arrays; import java.util.Locale; @@ -43,11 +48,30 @@ public class Main implements ApplicationRunner }); Localization.load(); - Logger.init(SystemUtils.getApplicationSupportDirectoryPath(Localization.getString("folder"))); + Path applicationSupportFolder = SystemUtils.getApplicationSupportDirectoryPath(Localization.getString("folder")); + PathUtils.createDirectoriesIfNotExists(applicationSupportFolder); + + Logger.init(applicationSupportFolder); Logger.setFileOutput(FileOutputOption.COMBINED); + Logger.appInfo(Localization.getString(Strings.APP_NAME), Localization.getString(Strings.VERSION_NAME), Localization.getString(Strings.VERSION_CODE), Localization.getString(Strings.VERSION_DATE)); ProgramArgs.setArgs(Arrays.asList(args)); + Path settingsPath = applicationSupportFolder.resolve("settings.properties"); + if(Files.notExists(settingsPath)) + { + try + { + Logger.warning("BudgetMaster settings file ({0}) is missing. A default file will be created. Please fill in your settings.", settingsPath); + Files.copy(Main.class.getClassLoader().getResourceAsStream("config/templates/settings.properties"), settingsPath, StandardCopyOption.REPLACE_EXISTING); + System.exit(1); + } + catch(IOException e) + { + Logger.error(e); + } + } + SpringApplication.run(Main.class, args); } @@ -77,7 +101,5 @@ public class Main implements ApplicationRunner Logger.setLevelFilter(LogLevelFilter.NORMAL); Logger.setFileOutput(FileOutputOption.COMBINED); } - - Logger.appInfo(Localization.getString(Strings.APP_NAME), Localization.getString(Strings.VERSION_NAME), Localization.getString(Strings.VERSION_CODE), Localization.getString(Strings.VERSION_DATE)); } } \ No newline at end of file diff --git a/src/main/resources/config/templates/settings.properties b/src/main/resources/config/templates/settings.properties new file mode 100644 index 0000000000000000000000000000000000000000..2781007ddde4c21d332ca12b2c7928708c5db5ee --- /dev/null +++ b/src/main/resources/config/templates/settings.properties @@ -0,0 +1,15 @@ +### general settings ### + +server.port=9000 + +### SSL settings ### + +# do not change this property +server.ssl.keyStoreType=PKCS12 + +# set to true if you want to use SSL (highly recommended) +security.require-ssl=false +# insert path to the keystore (relative to the location of BudgetMaster jar/exe or as absolute path) +server.ssl.key-store=<path_to_keystore> +server.ssl.key-store-password=<keystore_password> +server.ssl.keyAlias=<keystore_alias>