// connects MQTT broker func connect(c *cli.Context, opts *MQTT.ClientOptions) (*MQTTClient, error) { log.Info("Connecting...") willPayload := c.String("will-payload") willQoS := c.Int("will-qos") willRetain := c.Bool("will-retain") willTopic := c.String("will-topic") if willPayload != "" && willTopic != "" { opts.SetWill(willTopic, willPayload, MQTT.QoS(willQoS), willRetain) } client := &MQTTClient{Opts: opts} _, err := client.Connect() if err != nil { return nil, err } log.Info("Connected") return client, nil }