1
0
mirror of https://github.com/shirou/mqttcli.git synced 2025-04-30 13:48:50 +08:00

port in a config file can be string either int.

This commit is contained in:
Shirou WAKAYAMA 2014-12-15 23:28:03 +09:00
parent 2af1028bc8
commit e138636529

View File

@ -7,10 +7,12 @@ import (
"os"
"path"
"runtime"
"strconv"
"strings"
MQTT "git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.golang.git"
log "github.com/Sirupsen/logrus"
simpleJson "github.com/bitly/go-simplejson"
)
const DefaultConfigFile = ".mqttcli.cfg" // Under HOME
@ -22,6 +24,31 @@ type Config struct {
Password string `json:"password"`
}
func (c *Config) UnmarshalJSON(data []byte) error {
js, err := simpleJson.NewJson(data)
if err != nil {
return err
}
if c.Host, err = js.Get("host").String(); err != nil {
return err
}
// Port can be string either int
if c.Port, err = js.Get("port").Int(); err != nil {
p, err := js.Get("port").String()
c.Port, err = strconv.Atoi(p)
if err != nil {
return err
}
}
if c.UserName, err = js.Get("username").String(); err != nil {
return err
}
if c.Password, err = js.Get("password").String(); err != nil {
return err
}
return nil
}
func readFromConfigFile(path string) (Config, error) {
ret := Config{}