Bat/src/main/java/cc/fascinated/bat/BatApplication.java

44 lines
1.7 KiB
Java
Raw Normal View History

2024-06-23 20:37:24 +00:00
package cc.fascinated.bat;
2024-06-30 03:13:54 +00:00
import cc.fascinated.bat.config.Config;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import io.mongock.runner.springboot.EnableMongock;
2024-06-23 20:37:24 +00:00
import lombok.NonNull;
import lombok.SneakyThrows;
import lombok.extern.log4j.Log4j2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
2024-06-26 11:19:11 +00:00
import org.springframework.scheduling.annotation.EnableScheduling;
2024-06-23 20:37:24 +00:00
import java.io.File;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.Objects;
@EnableScheduling
2024-06-30 04:15:37 +00:00
@SpringBootApplication(scanBasePackages = "cc.fascinated.bat")
@EnableMongock
2024-06-28 02:01:21 +00:00
@Log4j2(topic = "Bat")
2024-06-23 20:37:24 +00:00
public class BatApplication {
2024-06-28 02:01:21 +00:00
public static Gson GSON = new GsonBuilder().create();
2024-06-28 02:01:21 +00:00
@SneakyThrows
public static void main(@NonNull String[] args) {
// Handle loading of our configuration file
File config = new File("application.yml");
if (!config.exists()) { // Saving the default config if it doesn't exist locally
Files.copy(Objects.requireNonNull(BatApplication.class.getResourceAsStream("/application.yml")), config.toPath(), StandardCopyOption.REPLACE_EXISTING);
log.info("Saved the default configuration to '{}', please re-launch the application", // Log the default config being saved
config.getAbsolutePath()
);
return;
}
log.info("Found configuration at '{}'", config.getAbsolutePath()); // Log the found config
2024-06-23 20:37:24 +00:00
2024-06-28 02:01:21 +00:00
// Start the app
SpringApplication.run(BatApplication.class, args);
2024-06-30 03:13:54 +00:00
log.info("APP IS RUNNING IN %s MODE!!!!!!!!!".formatted(Config.isProduction() ? "PRODUCTION" : "DEVELOPMENT"));
2024-06-28 02:01:21 +00:00
}
2024-06-23 20:37:24 +00:00
}