diff options
Diffstat (limited to 'internal/config/config.go')
| -rw-r--r-- | internal/config/config.go | 45 |
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 +} |
