ha-rgb-screen/internal/config/config.go
Simon Vieille 4e84cc2ad4
feat: use input entity to enable the service
feat: add new params

BREAKING CHANGE: new cli params
2026-01-12 20:04:22 +01:00

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,
}
}