| 566 | } |
| 567 | |
| 568 | func LoadRuleAndCombine(filename []string) (string, error) { |
| 569 | var bs bytes.Buffer |
| 570 | for _, f := range filename { |
| 571 | if data, ok := Rules[f]; ok { |
| 572 | bs.WriteString(strings.TrimSpace(data)) |
| 573 | bs.WriteString("\n") |
| 574 | } else { |
| 575 | content, err := ioutil.ReadFile(f) |
| 576 | if err != nil { |
| 577 | return "", err |
| 578 | } |
| 579 | bs.Write(bytes.TrimSpace(content)) |
| 580 | bs.WriteString("\n") |
| 581 | } |
| 582 | } |
| 583 | return bs.String(), nil |
| 584 | } |
| 585 | |
| 586 | func loadFileWithCache(filename string) ([]string, error) { |
| 587 | if dict, ok := Dicts[filename]; ok { |