package pkg import ( "regexp" "github.rackspace.com/gorax/tools/util" ) type SysVersion struct { Product string `json:"product"` Version string `json:"version"` Build string `json:"build"` Edition string `json:"edition"` Date string `json:"date"` Hotfix []string `json:"hotfix_list"` } func ParseSysVersion(s string) *SysVersion { v := new(SysVersion) v.Parse(s) return v } func (v *SysVersion) Parse(s string) { v.Product = util.RegexpString(regexp.MustCompile(`(?i)product\s+(\S+)?`), s) v.Version = util.RegexpString(versRegex, s) v.Build = util.RegexpString(regexp.MustCompile(`(?i)build\s+(\S+)`), s) v.Edition = util.RegexpString(regexp.MustCompile(`(?i)edition\s+(.*)?`), s) v.Date = util.RegexpString(regexp.MustCompile(`(?i)date\s+(.*)?`), s) for _, i := range regexp.MustCompile(`(ID\S+)`).FindAllStringSubmatch(s, -1) { v.Hotfix = append(v.Hotfix, i[1]) } }