package pkg import ( "regexp" "strings" "github.rackspace.com/gorax/tools/util" ) type ( IntStatus struct { Interfaces []*IntStats `json:"interfaces"` } IntStats struct { Name string `json:"name"` Status string `json:"status"` BitsIn int `json:"bits_in"` BitsOut int `json:"bits_out"` PktsIn int `json:"pkts_in"` PktsOut int `json:"pkts_out"` Drops int `json:"drops"` Errs int `json:"errs"` Media string `json:"media"` } ) func ParseInterfaceStatus(s string) *IntStatus { i := new(IntStatus) i.Parse(s) return i } func (i *IntStatus) Parse(s string) { for _, v := range strings.Split(s, "\n") { r := regexp.MustCompile(`^(.*?)\s+(\S+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+(\S+)`).FindStringSubmatch(v) if len(r) != 0 { i.Interfaces = append(i.Interfaces, &IntStats{ Name: r[1], Status: r[2], BitsIn: util.Atoi(r[3]), BitsOut: util.Atoi(r[4]), PktsIn: util.Atoi(r[5]), PktsOut: util.Atoi(r[6]), Drops: util.Atoi(r[7]), Errs: util.Atoi(r[8]), Media: r[9], }) } } }