aboutsummaryrefslogtreecommitdiff
path: root/internal/config
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-11 04:46:27 -0400
committerhistoria <[not public]>2026-06-11 08:58:37 +0000
commit1b9e2da3b3c438d8dc53d3489725dd5ba0022777 (patch)
tree62264f24420bf4cfaa734942c65cc8dd45ba3d3b /internal/config
parent06c02a697e5daf8832a462de5970dd4c0e13a02c (diff)
downloadthehouseoficarus-1b9e2da3b3c438d8dc53d3489725dd5ba0022777.tar.gz
feat: web client, get/drop updates and fixes
Diffstat (limited to 'internal/config')
-rw-r--r--internal/config/config.go59
1 files changed, 59 insertions, 0 deletions
diff --git a/internal/config/config.go b/internal/config/config.go
new file mode 100644
index 0000000..8ff5740
--- /dev/null
+++ b/internal/config/config.go
@@ -0,0 +1,59 @@
+package config
+
+import (
+ "os"
+
+ "gopkg.in/yaml.v3"
+)
+
+type Config struct {
+ Telnet TelnetConfig `yaml:"telnet"`
+ HTTP HTTPConfig `yaml:"http"`
+ HTTPS HTTPSConfig `yaml:"https"`
+}
+
+type TelnetConfig struct {
+ Enabled bool `yaml:"enabled"`
+ Port int `yaml:"port"`
+}
+
+type HTTPConfig struct {
+ Enabled bool `yaml:"enabled"`
+ Port int `yaml:"port"`
+}
+
+type HTTPSConfig struct {
+ Enabled bool `yaml:"enabled"`
+ Port int `yaml:"port"`
+ CertFile string `yaml:"cert_file"`
+ KeyFile string `yaml:"key_file"`
+}
+
+func Default() *Config {
+ return &Config{
+ Telnet: TelnetConfig{
+ Enabled: true,
+ Port: 4000,
+ },
+ HTTP: HTTPConfig{
+ Enabled: false,
+ Port: 8080,
+ },
+ HTTPS: HTTPSConfig{
+ Enabled: false,
+ Port: 8443,
+ },
+ }
+}
+
+func Load(path string) (*Config, error) {
+ data, err := os.ReadFile(path)
+ if err != nil {
+ return nil, err
+ }
+ cfg := Default()
+ if err := yaml.Unmarshal(data, cfg); err != nil {
+ return nil, err
+ }
+ return cfg, nil
+}