hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/internal/config/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/config/config.go')
-rw-r--r--internal/config/config.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/internal/config/config.go b/internal/config/config.go
new file mode 100644
index 0000000..35842a1
--- /dev/null
+++ b/internal/config/config.go
@@ -0,0 +1,45 @@
+package config
+
+import (
+ "encoding/json"
+ "os"
+ "path/filepath"
+)
+
+type Config struct {
+ ChannelID string `json:"channel_id"`
+ CheckIntervalMinutes int `json:"check_interval_minutes"`
+ MinecraftVersion string `json:"minecraft_version"`
+ FabricLoaderVersion string `json:"fabric_loader_version"`
+ LoaderMetaVersion string `json:"loader_meta_version"`
+ JavaPath string `json:"java_path"`
+ ServerLocation string `json:"server_location"`
+ BackupLocation string `json:"backup_location"`
+ MergePreCommand string `json:"merge_pre_command"`
+ MergePostCommand string `json:"merge_post_command"`
+ ModrinthMods []string `json:"modrinth_mods"`
+}
+
+const Dir = "config"
+
+func Path() string {
+ return filepath.Join(Dir, "config.json")
+}
+
+func APIPath() string {
+ return filepath.Join(Dir, "api.json")
+}
+
+func Load() (*Config, error) {
+ data, err := os.ReadFile(Path())
+ if err != nil {
+ return nil, err
+ }
+
+ var c Config
+ if err := json.Unmarshal(data, &c); err != nil {
+ return nil, err
+ }
+
+ return &c, nil
+}