Go
- 54 ответа
- 0 вопросов
36
Вклад в тег
Весь день голову ломаю.
package config
import (
"encoding/json"
"fmt"
"os"
)
type Cfg struct {
// Fields
}
var (
cfg *Cfg
)
func Config() *Cfg {
return cfg
}
func LoadConfig() error {
f, err := os.Open("./config/config.json")
if err != nil {
return fmt.Errorf("can't open config file: %w", err)
}
defer f.Close()
dec := json.NewDecoder(f)
var c *Cfg
if err := dec.Decode(c); err != nil {
return fmt.Errorf("can't decode config file: %w", err)
}
if err := validate(c); err != nil {
return fmt.Errorf("can't validate config file: %w", err)
}
cfg = c
return nil
}
func validate(cfg *Cfg) error {
// Logic
return nil
}
GO111MODULE=off go build
, получите собранный бинарник - нет там никаких внешних зависимостей и даже go.mod