config: переезд на YAML вместо JSON + main ветка

- config.json → config.yaml (формат YAML)
- github.com/spf13/viper не нужен — используем gopkg.in/yaml.v3
- Поддержка .yaml и .yml расширений
- Флаг -config по умолчанию смотрит config.yaml
- config.local.{yaml,yml} добавлены в .gitignore
- Ветка переименована master → main
This commit is contained in:
SashegDev
2026-06-06 22:48:27 +00:00
parent 096c4d0a2d
commit 04230fa7f0
7 changed files with 36 additions and 23 deletions
+20 -11
View File
@@ -1,20 +1,22 @@
package config
import (
"encoding/json"
"os"
"path/filepath"
"strings"
"gopkg.in/yaml.v3"
)
type Config struct {
ServerName string `json:"server_name"`
ListenAddr string `json:"listen_addr"`
Domain string `json:"domain"`
DataDir string `json:"data_dir"`
MaxFileSize int64 `json:"max_file_size"`
Federation bool `json:"federation"`
FederatedWith []string `json:"federated_with"`
LogLevel string `json:"log_level"`
ServerName string `yaml:"server_name"`
ListenAddr string `yaml:"listen_addr"`
Domain string `yaml:"domain"`
DataDir string `yaml:"data_dir"`
MaxFileSize int64 `yaml:"max_file_size"`
Federation bool `yaml:"federation"`
FederatedWith []string `yaml:"federated_with"`
LogLevel string `yaml:"log_level"`
}
func Default() *Config {
@@ -39,8 +41,15 @@ func Load(path string) (*Config, error) {
if err != nil {
return cfg, nil
}
if err := json.Unmarshal(data, cfg); err != nil {
return nil, err
ext := strings.ToLower(filepath.Ext(path))
switch ext {
case ".yaml", ".yml":
if err := yaml.Unmarshal(data, cfg); err != nil {
return nil, err
}
default:
return cfg, nil
}
return cfg, nil
}