// Replaces variables ("${}") in the string to their actual value func magicString(s string, evt event.Event) string { rep := regexp.MustCompile("(\\${|})") rst := findMagicStrings(s) for _, v := range rst { variable := rep.ReplaceAllString(v, "") opt := strings.Split(variable, ".") switch opt[0] { case "event": b, _ := json.Marshal(evt) s = strings.Replace(s, v, string(b), -1) case "message": str := "" if len(opt) <= 1 { b, _ := json.Marshal(evt.Message) str = string(b) } else { str = evt.GetString(strings.Join(opt[1:], ".")) } s = strings.Replace(s, v, str, -1) } } return s }