package pkg import ( "regexp" "github.rackspace.com/gorax/tools/util" ) type ( SoftwareHotfix struct { SwHotfixes []*SwHotfix `json:"hotfix"` } SwHotfix struct { Name string `json:"name"` Build string `json:"build"` CheckSum string `json:"checksum"` Id string `json:"id"` Product string `json:"product"` Title string `json:"title"` Verified string `json:"verified"` Version string `json:"version"` } ) func ParseSofwareHotfix(s string) *SoftwareHotfix { f := new(SoftwareHotfix) f.Parse(s) return f } func (h *SoftwareHotfix) Parse(s string) { for _, i := range regexp.MustCompile(`(?i)sys\s+software\s+hotfix\s+(\S+)\s+{((.|\n)*?)}`).FindAllStringSubmatch(s, -1) { h.SwHotfixes = append(h.SwHotfixes, &SwHotfix{ Name: i[1], Build: util.RegexpString(swBuildRegex, i[2]), CheckSum: util.RegexpString(swCheckSumRegex, i[2]), Id: util.RegexpString(swIDRegex, i[2]), Product: util.RegexpString(swProductRegex, i[2]), Title: util.RegexpString(swTitleRegex, i[2]), Verified: util.RegexpString(swVerifiedRegex, i[2]), Version: util.RegexpString(swVersionRegex, i[2]), }) } }