From b3a6dfbe07575f05052c805a6d086fda8c0b6f75 Mon Sep 17 00:00:00 2001 From: Ryan Cavicchioni Date: Sun, 14 Mar 2021 13:51:55 -0500 Subject: [PATCH] Move more configuration related code --- cmd/command.go | 42 ------------------------------------------ cmd/config.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 42 deletions(-) diff --git a/cmd/command.go b/cmd/command.go index bd8d4bb..8d78ecc 100644 --- a/cmd/command.go +++ b/cmd/command.go @@ -1,7 +1,6 @@ package lumecmd import ( - "errors" "flag" "fmt" "strconv" @@ -14,12 +13,6 @@ const ( ExitFailure ) -type Config struct { - AccessToken string `toml:"access_token"` - OutputFormat string `toml:"output_format"` - Colors map[string][]float32 `toml:"colors"` -} - type CmdArgs struct { Flags Flags Args []string @@ -96,38 +89,3 @@ func GetCommand(name string) (Command, bool) { cmd, ok := commandRegistry[name] return cmd, ok } - -// Validate configuration struct -func (c *Config) Validate() error { - var err error - if c.AccessToken == "" { - err = errors.New("access_token is not set") - } - - if err = c.validateColors(); err != nil { - return err - } - - return err -} - -func (c *Config) validateColors() (err error) { - if len(c.Colors) > 0 { - for name, hsb := range c.Colors { - if len(hsb) != 3 { - return fmt.Errorf("color '%s' needs three values", name) - } - h, s, b := hsb[0], hsb[1], hsb[2] - if h < 0 || h > 360 { - return fmt.Errorf("color '%s' hue value must be between 0.0-360.0", name) - } - if s < 0 || b > 1 { - return fmt.Errorf("color '%s' saturation value must be between 0.0-1.0", name) - } - if b < 0 || b > 1 { - return fmt.Errorf("color '%s' brightness value must be between 0.0-1.0", name) - } - } - } - return err -} diff --git a/cmd/config.go b/cmd/config.go index 0fb1d32..04b05d0 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -1,12 +1,55 @@ package lumecmd import ( + "errors" + "fmt" "os" "path" ) const lumercFile string = ".lumerc" +type Config struct { + AccessToken string `toml:"access_token"` + OutputFormat string `toml:"output_format"` + Colors map[string][]float32 `toml:"colors"` +} + +// Validate configuration struct +func (c *Config) Validate() error { + var err error + if c.AccessToken == "" { + err = errors.New("access_token is not set") + } + + if err = c.validateColors(); err != nil { + return err + } + + return err +} + +func (c *Config) validateColors() (err error) { + if len(c.Colors) > 0 { + for name, hsb := range c.Colors { + if len(hsb) != 3 { + return fmt.Errorf("color '%s' needs three values", name) + } + h, s, b := hsb[0], hsb[1], hsb[2] + if h < 0 || h > 360 { + return fmt.Errorf("color '%s' hue value must be between 0.0-360.0", name) + } + if s < 0 || b > 1 { + return fmt.Errorf("color '%s' saturation value must be between 0.0-1.0", name) + } + if b < 0 || b > 1 { + return fmt.Errorf("color '%s' brightness value must be between 0.0-1.0", name) + } + } + } + return err +} + func getConfigPath() string { var tryPath, configPath string