[WIP] update linter rules, fix many linter warnings
This commit is contained in:
@@ -11,52 +11,52 @@ import (
|
||||
)
|
||||
|
||||
// ParseConfig разбирает и валидирует даденный конфиг.
|
||||
func ParseConfig(path string) (myConfig, error) {
|
||||
func ParseConfig(path string) (MyConfig, error) {
|
||||
fileInfo, err := os.Stat(path)
|
||||
|
||||
// Предполагаем, что файла либо нет, либо мы не можем его прочитать, второе надо бы логгировать, но пока забьём.
|
||||
if err != nil {
|
||||
return myConfig{}, err
|
||||
return MyConfig{}, err
|
||||
}
|
||||
|
||||
// Конфиг-файл длинноват для конфига, попробуем следующего кандидата.
|
||||
if fileInfo.Size() > 65535 {
|
||||
err := fmt.Errorf("config file %s is too long for config, skipping", path)
|
||||
|
||||
return myConfig{}, err
|
||||
return MyConfig{}, err
|
||||
}
|
||||
|
||||
buf, err := os.ReadFile(path)
|
||||
|
||||
// Не удалось прочитать.
|
||||
if err != nil {
|
||||
return myConfig{}, err
|
||||
return MyConfig{}, err
|
||||
}
|
||||
|
||||
// Исходя из документации, hjson какбы умеет парсить "кривой" json, но парсит его в map-ку.
|
||||
// Интереснее на выходе получить структурку: то есть мы вначале конфиг преобразуем в map-ку, затем эту map-ку
|
||||
// сериализуем в json, а потом json превращааем в структурку. Не очень эффективно, но он и не часто требуется.
|
||||
var (
|
||||
sampleConfig myConfig
|
||||
tmp map[string]interface{}
|
||||
sampleConfig MyConfig
|
||||
tmp map[string]any
|
||||
)
|
||||
|
||||
err = hjson.Unmarshal(buf, &tmp)
|
||||
|
||||
// Не удалось распарсить.
|
||||
if err != nil {
|
||||
return myConfig{}, err
|
||||
return MyConfig{}, err
|
||||
}
|
||||
|
||||
tmpjson, err := json.Marshal(tmp)
|
||||
|
||||
// Не удалось преобразовать map-ку в json.
|
||||
if err != nil {
|
||||
return myConfig{}, err
|
||||
return MyConfig{}, err
|
||||
}
|
||||
|
||||
if err := json.Unmarshal(tmpjson, &sampleConfig); err != nil {
|
||||
return myConfig{}, err
|
||||
return MyConfig{}, err
|
||||
}
|
||||
|
||||
// Валидируем значения из конфига.
|
||||
@@ -73,29 +73,29 @@ func ParseConfig(path string) (myConfig, error) {
|
||||
if sampleConfig.Redis.Channel == "" {
|
||||
err := fmt.Errorf("channel field in config file %s must be set", path)
|
||||
|
||||
return myConfig{}, err
|
||||
return MyConfig{}, err
|
||||
}
|
||||
|
||||
if sampleConfig.Redis.MyChannel == "" {
|
||||
err := fmt.Errorf("my_channel field in config file %s must be set", path)
|
||||
|
||||
return myConfig{}, err
|
||||
return MyConfig{}, err
|
||||
}
|
||||
|
||||
if sampleConfig.Telegram.Token == "" {
|
||||
return myConfig{}, fmt.Errorf("telegram.token field in config file %s must be set", path)
|
||||
return MyConfig{}, fmt.Errorf("telegram.token field in config file %s must be set", path)
|
||||
}
|
||||
|
||||
if sampleConfig.Loglevel == "" {
|
||||
sampleConfig.Loglevel = "info"
|
||||
}
|
||||
|
||||
// sampleConfig.Log = "" if not set
|
||||
// sampleConfig.Log = "" if not set..
|
||||
|
||||
if sampleConfig.Csign == "" {
|
||||
err := fmt.Errorf("csign field in config file %s must be set", path)
|
||||
|
||||
return myConfig{}, err
|
||||
return MyConfig{}, err
|
||||
}
|
||||
|
||||
if sampleConfig.ForwardsMax == 0 {
|
||||
@@ -103,7 +103,7 @@ func ParseConfig(path string) (myConfig, error) {
|
||||
}
|
||||
|
||||
if sampleConfig.DataDir == "" {
|
||||
return myConfig{}, fmt.Errorf("data_dir field in config file %s must be set", path)
|
||||
return MyConfig{}, fmt.Errorf("data_dir field in config file %s must be set", path)
|
||||
}
|
||||
|
||||
return sampleConfig, err
|
||||
|
||||
Reference in New Issue
Block a user