package pkg import ( "regexp" "github.rackspace.com/gorax/tools/util" ) type ( SysPartitions struct { Partitions []*SysPartition `json:"partitions"` } SysPartition struct { Name string `json:"name"` Domain int `json:"default-route-domain"` Description string `json:"description"` } ) func ParseSysPartitions(s string) *SysPartitions { p := new(SysPartitions) p.Parse(s) return p } func (p *SysPartitions) Parse(s string) { for _, i := range regexp.MustCompile(`(?i)auth\s+partition\s+(\S+)\s+{((.|\n)*?)(\n}|$)`).FindAllStringSubmatch(s, -1) { p.Partitions = append(p.Partitions, &SysPartition{ Name: i[1], Domain: util.Atoi(util.RegexpString(regexp.MustCompile(`(?i)default-route-domain\s+([0-9]+)`), i[2])), Description: util.RegexpString(descriptionRegex, i[2]), }) } }