check.go 678 B

1234567891011121314151617181920212223242526272829303132333435
  1. package main
  2. import (
  3. "goa.design/clue/log"
  4. "douglasthrift.net/presence"
  5. )
  6. type (
  7. Check struct {
  8. Values bool `help:"Show config values." short:"V"`
  9. }
  10. )
  11. func (c *Check) Run(cli *CLI) error {
  12. ctx := cli.Context()
  13. config, err := presence.ParseConfig(cli.Config)
  14. if err != nil {
  15. log.Error(ctx, err, log.Fields{"config": cli.Config})
  16. return err
  17. }
  18. if c.Values {
  19. log.Info(ctx, log.Fields{"interval": config.Interval})
  20. as := make([]string, len(config.MACAddresses))
  21. for i, a := range config.MACAddresses {
  22. as[i] = a.String()
  23. }
  24. log.Info(ctx, log.Fields{"mac_addresses": as})
  25. log.Info(ctx, log.Fields{"ping_count": config.PingCount})
  26. }
  27. return nil
  28. }