|
|
package script
import ( "fmt" "github.com/google/uuid" "strings" )
type UpdateTrigger Trigger
func (c UpdateTrigger) CommandDescription() string { return fmt.Sprintf("script.UpdateTrigger(%s, %s(%#+v, %#+v))", c.ID, c.Event, c.DeviceMatch, c.Parameter, ) }
type DeleteTrigger struct { ID uuid.UUID `json:"id"` }
func (c DeleteTrigger) CommandDescription() string { return fmt.Sprintf("script.DeleteTrigger(%s)", c.ID) }
type SetVariable struct { Match *string Devices []string Key string Value string }
func (c SetVariable) CommandDescription() string { switch { case c.Match != nil: return fmt.Sprintf("script.SetVariable(tag(%s), %s, %s)", *c.Match, c.Key, c.Value) case c.Devices != nil: return fmt.Sprintf("script.SetVariable(devices(%s), %s, %s)", strings.Join(c.Devices, ", "), c.Key, c.Value) default: return fmt.Sprintf("script.SetVariable(global, %s, %s)", c.Key, c.Value) } }
type Update struct { Name string `json:"name"` Lines []Line `json:"lines"` }
func (c Update) CommandDescription() string { return fmt.Sprintf("script.Update(%s, [%d lines...])", c.Name, len(c.Lines)) }
type Execute struct { Name string `json:"name"` Match string `json:"match"` }
func (c Execute) CommandDescription() string { return fmt.Sprintf("script.Execute(%s, %s)", c.Name, c.Match) }
|