package config import ( "errors" "io" "github.com/rs/zerolog" ) var ( ErrInvalidGrafanaURL = errors.New("invalid grafana URL, must not be blank") ErrInvalidAuthToken = errors.New("invalid auth token for grafana, must not be blank") ErrInvalidRepoURL = errors.New("invalid repo url for git, must not be blank") ErrInvalidGitUser = errors.New("invalid username for git, must not be blank") ErrInvalidGitPass = errors.New("invalid password for git, must not be blank") ErrInvalidBranchName = errors.New("invalid branch name for git, must not be blank") ) type Config struct { Debug bool ForceCommits bool JSONFormat bool GrafanaURL string GrafanaToken string GitBranch string GitEmail string GitRepo string GitUser string GitPass string GPGKey string Quiet bool Sequence []string Output io.Writer Logger zerolog.Logger } func (c *Config) Validate() []error { var errs []error if c.GrafanaURL == "" { errs = append(errs, ErrInvalidGrafanaURL) } if c.GrafanaToken == "" { errs = append(errs, ErrInvalidAuthToken) } if c.GitRepo == "" { errs = append(errs, ErrInvalidRepoURL) } if c.GitUser == "" { errs = append(errs, ErrInvalidGitUser) } if c.GitPass == "" { errs = append(errs, ErrInvalidGitPass) } if c.GitBranch == "" { errs = append(errs, ErrInvalidBranchName) } return errs }