// f5 common functions used to parse variours configuration elements package pkg import ( "fmt" "strconv" "strings" ) // Return a list of the outer most bracer matched elements func braceParse(s string) []string { var brOpen int var r string var l []string for _, v := range strings.Split(s, "\n") { if strings.Contains(v, "{") { brOpen += 1 } if strings.Contains(v, "}") { brOpen -= 1 } if brOpen != 0 { r = fmt.Sprintf("%s\n%s", r, v) } if brOpen == 0 { r = fmt.Sprintf("%s\n%s", r, v) l = append(l, r) r = "" } } return l } // strconv.Atoi wrapper func atoi(s string) *int { i, err := strconv.Atoi(s) if err != nil { return nil } return &i }