Makes it possible to enable debug mode
Some checks failed
KnarCraft/FFmpegConvert/pipeline/head There was a failure building this commit
Some checks failed
KnarCraft/FFmpegConvert/pipeline/head There was a failure building this commit
Debug mode is now enabled if the property `debug = true` is set in `conf/config.properties` Changes code for reading internal configurations Changes many primitive lists to List<> Adds some missing annotations Renames the main class
This commit is contained in:
@@ -1,14 +1,12 @@
|
||||
package net.knarcraft.ffmpegconverter.handler;
|
||||
|
||||
import net.knarcraft.ffmpegconverter.FFMpegConvert;
|
||||
import net.knarcraft.ffmpegconverter.config.ConfigHandler;
|
||||
import net.knarcraft.ffmpegconverter.utility.OutputUtil;
|
||||
import org.apache.commons.configuration2.Configuration;
|
||||
import org.apache.commons.configuration2.PropertiesConfiguration;
|
||||
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
|
||||
import org.apache.commons.configuration2.builder.fluent.Configurations;
|
||||
import org.apache.commons.configuration2.ex.ConfigurationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -18,8 +16,7 @@ import java.util.List;
|
||||
*/
|
||||
public record AvailableHardwareEncoderHandler(@NotNull List<String> availableHardwareEncodings) {
|
||||
|
||||
private static final File configFolder = new File("conf").getAbsoluteFile();
|
||||
private static final Configurations configurations = new Configurations();
|
||||
private static final ConfigHandler configHandler = FFMpegConvert.getConfigHandler();
|
||||
|
||||
/**
|
||||
* Gets all hardware encodings
|
||||
@@ -42,30 +39,12 @@ public record AvailableHardwareEncoderHandler(@NotNull List<String> availableHar
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves settings fro this available hardware encoder handler
|
||||
*
|
||||
* @throws ConfigurationException <p>If the configuration file cannot be saved</p>
|
||||
* Saves settings for this available hardware encoder handler
|
||||
*/
|
||||
public void save() throws ConfigurationException {
|
||||
OutputUtil.printDebug("Preparing to save config");
|
||||
if (!configFolder.exists() && !configFolder.mkdir()) {
|
||||
throw new RuntimeException("Unable to create config folder. Make sure to run this .jar file from a " +
|
||||
"writable directory!");
|
||||
}
|
||||
File settingsFile = new File(configFolder, "config.properties");
|
||||
try {
|
||||
if (!settingsFile.exists() && !settingsFile.createNewFile()) {
|
||||
OutputUtil.println("Failed to create configuration file.");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
OutputUtil.println("Failed to create configuration file.");
|
||||
}
|
||||
|
||||
FileBasedConfigurationBuilder<PropertiesConfiguration> builder =
|
||||
configurations.propertiesBuilder(settingsFile);
|
||||
PropertiesConfiguration config = builder.getConfiguration();
|
||||
config.setProperty("encoder.hardware", this.availableHardwareEncodings);
|
||||
builder.save();
|
||||
public void save() {
|
||||
PropertiesConfiguration configuration = configHandler.getWritableConfiguration();
|
||||
configuration.setProperty("encoder.hardware", this.availableHardwareEncodings);
|
||||
configHandler.writeConfiguration();
|
||||
OutputUtil.printDebug("Saved available hardware encoder handler");
|
||||
}
|
||||
|
||||
@@ -73,14 +52,15 @@ public record AvailableHardwareEncoderHandler(@NotNull List<String> availableHar
|
||||
* Loads saved settings for an available hardware encoder handler
|
||||
*
|
||||
* @return <p>The loaded available hardware encoder handler, or a new one if no data has been saved</p>
|
||||
* @throws ConfigurationException <p>If the configuration file cannot be loaded</p>
|
||||
*/
|
||||
public static AvailableHardwareEncoderHandler load() throws ConfigurationException {
|
||||
File settingsFile = new File(configFolder, "config.properties");
|
||||
if (!settingsFile.exists()) {
|
||||
return new AvailableHardwareEncoderHandler(new ArrayList<>());
|
||||
@NotNull
|
||||
public static AvailableHardwareEncoderHandler load() {
|
||||
Configuration configuration;
|
||||
try {
|
||||
configuration = configHandler.load();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
Configuration configuration = configurations.properties(settingsFile);
|
||||
List<String> getEncodings = configuration.getList(String.class, "encoder.hardware");
|
||||
return new AvailableHardwareEncoderHandler(getEncodings);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user