67 lines
2.0 KiB
Java
67 lines
2.0 KiB
Java
package ru.kirillius.cooler.controller;
|
|
|
|
import ru.kirillius.cooler.controller.CLI.ConsoleApp;
|
|
import ru.kirillius.cooler.controller.UI.MainForm;
|
|
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.net.URISyntaxException;
|
|
import java.util.Properties;
|
|
|
|
public class Application {
|
|
public final static boolean DEBUG;
|
|
public final static String title = "Cooler configurator";
|
|
public final static Properties properties = new Properties();
|
|
public final static boolean WINDOWS_HOST = System.getProperty("os.name").toLowerCase().contains("windows");
|
|
private final static File configFile;
|
|
|
|
static {
|
|
var props = System.getProperties();
|
|
DEBUG = props.containsKey("debug") && props.getProperty("debug").equals("true");
|
|
if (DEBUG) System.out.println("Debug mode is enabled");
|
|
|
|
File location = new File(".");
|
|
if (WINDOWS_HOST) try {
|
|
location = new File(Application.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()).getParentFile();
|
|
} catch (URISyntaxException ignored) {
|
|
}
|
|
if (!location.exists()) {
|
|
location = new File(".");
|
|
}
|
|
|
|
configFile = new File(location, "config.ini");
|
|
}
|
|
|
|
public static void saveConfig() throws IOException {
|
|
try (FileOutputStream stream = new FileOutputStream(configFile)) {
|
|
properties.store(stream, "");
|
|
}
|
|
}
|
|
|
|
public static void main(String[] args) throws IOException {
|
|
if (configFile.exists()) {
|
|
try (FileInputStream stream = new FileInputStream(configFile)) {
|
|
properties.load(stream);
|
|
}
|
|
}
|
|
|
|
boolean gui = true;
|
|
for (String arg : args) {
|
|
if (arg.equals("--cli")) {
|
|
gui = false;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (gui) {
|
|
MainForm mainForm = new MainForm();
|
|
mainForm.setVisible(true);
|
|
} else {
|
|
new ConsoleApp();
|
|
}
|
|
|
|
}
|
|
}
|