in pkg/ecctl/app.go [67:107]
func newAPIConfig(cfg Config) (api.Config, error) {
var empty api.Config
if err := cfg.Validate(); err != nil {
return empty, err
}
apiCfg := api.Config{
Client: cfg.Client,
Host: cfg.Host,
SkipTLSVerify: cfg.Insecure,
Timeout: cfg.Timeout,
VerboseSettings: api.VerboseSettings{
Verbose: cfg.Verbose,
Device: cfg.OutputDevice,
RedactAuth: !cfg.VerboseCredentials,
},
SkipLogin: cfg.SkipLogin,
ErrorDevice: cfg.ErrorDevice,
UserAgent: cfg.UserAgent,
}
authWriter, err := auth.NewAuthWriter(auth.Config{
APIKey: cfg.APIKey, Username: cfg.User, Password: cfg.Pass,
})
if err != nil {
return empty, err
}
apiCfg.AuthWriter = authWriter
if cfg.VerboseFile != "" {
f, err := os.Create(cfg.VerboseFile)
if err != nil {
return empty, fmt.Errorf(
`failed creating verbose file "%s": %w`, cfg.VerboseFile, err,
)
}
apiCfg.VerboseSettings.Device = f
}
return apiCfg, nil
}