ngx_conf_parse_test.go 938 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package nginx
  2. import (
  3. "fmt"
  4. "github.com/tufanbarisyildirim/gonginx"
  5. "github.com/tufanbarisyildirim/gonginx/parser"
  6. "strings"
  7. "testing"
  8. )
  9. func TestNgxConfParse(t *testing.T) {
  10. p, err := parser.NewParser("conf/nextcloud_ngx.conf")
  11. if err != nil {
  12. fmt.Println(err)
  13. return
  14. }
  15. n := p.Parse()
  16. fn(n.Block, 0)
  17. c, err := ParseNgxConfig("conf/nextcloud_ngx.conf")
  18. if err != nil {
  19. fmt.Println(err)
  20. return
  21. }
  22. fmt.Println(c)
  23. c, err = ParseNgxConfig("conf/test.conf")
  24. if err != nil {
  25. fmt.Println(err)
  26. return
  27. }
  28. fmt.Println(c)
  29. }
  30. func fn(block gonginx.IBlock, deep int) {
  31. if block == nil {
  32. return
  33. }
  34. for _, v := range block.GetDirectives() {
  35. if len(v.GetComment()) > 0 {
  36. for _, c := range v.GetComment() {
  37. fmt.Println(strings.Repeat("\t", deep), c)
  38. }
  39. }
  40. fmt.Println(fmt.Sprintf("%s%s %s", strings.Repeat("\t", deep), v.GetName(), strings.Join(v.GetParameters(), " ")))
  41. fn(v.GetBlock(), deep+1)
  42. }
  43. }