func newAPIConfig()

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
}