Как правильно передать параметры этому Go коду?

Проект https://github.com/ffddorf/unms-exporter/blob/main/main.go


type config struct {
    ServerAddr string       `mapstructure:"listen" split_words:"true"`
    LogLevel   logrus.Level `mapstructure:"log_level" split_words:"true"`

    TokenPerHost map[string]string `mapstructure:"token" envconfig:"-"`
}

const envPrefix = "UNMS_EXPORTER"

По сути оба параметра ( адрес и токен) строки

---
listen: "ip_addr"
token: "xxx-xxxx-xxxx-xxxx"

Но при запуске выдает ошибку

/usr/local/bin/unms-exporter -c  /etc/unms-exporter/config.yml
FATA[0000] failed to read config from flags              error="1 error(s) decoding:\n\n* 'token' expected a map, got 'string'"

Собственно и непонятно как в кофиге указать токен для map[string]string mapstructure:"token" envconfig:"-"


Ответы (1 шт):

Автор решения: Senior Pomidor

если вы хотите исключительно map[string]string, то вам нужно иметь структуру вида

---
listen: "ip_addr"
token:
    "xxx-xxxx-xxxx-xxxx": "value"
    "xxx-xxxx-xxxx-yyyy": "value"
→ Ссылка