63 lines
1.2 KiB
Go
63 lines
1.2 KiB
Go
package config
|
|
|
|
import "flag"
|
|
|
|
type Config struct {
|
|
Url string
|
|
WebhookName string
|
|
StateId string
|
|
Token string
|
|
Delay int
|
|
Screen int
|
|
Delta float64
|
|
Verbose bool
|
|
Debug bool
|
|
Usage func()
|
|
}
|
|
|
|
func (c *Config) IsValid() bool {
|
|
if c.Url == "" {
|
|
return false
|
|
}
|
|
|
|
if c.WebhookName == "" {
|
|
return false
|
|
}
|
|
|
|
if c.StateId == "" {
|
|
return false
|
|
}
|
|
|
|
if c.Token == "" {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
func GetConfig() *Config {
|
|
url := flag.String("url", "", "Home assistant base URL")
|
|
webhookName := flag.String("webhook", "", "Webhook name")
|
|
token := flag.String("token", "", "Token")
|
|
stateId := flag.String("state", "", "state entity name")
|
|
delay := flag.Int("delay", 500, "Delay in ms")
|
|
screen := flag.Int("screen", 0, "Screen index")
|
|
delta := flag.Float64("delta", 0.5, "Mininum delta to update the color")
|
|
verbose := flag.Bool("v", false, "Verbose mode")
|
|
debug := flag.Bool("debug", false, "Debug mode (no http request)")
|
|
|
|
flag.Parse()
|
|
|
|
return &Config{
|
|
Url: *url,
|
|
WebhookName: *webhookName,
|
|
StateId: *stateId,
|
|
Token: *token,
|
|
Delay: *delay,
|
|
Screen: *screen,
|
|
Delta: *delta,
|
|
Verbose: *verbose,
|
|
Debug: *debug,
|
|
Usage: flag.Usage,
|
|
}
|
|
}
|