1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package nginx
- import (
- "fmt"
- "strings"
- "testing"
- "github.com/tufanbarisyildirim/gonginx/config"
- "github.com/tufanbarisyildirim/gonginx/parser"
- )
- func TestNgxConfParse(t *testing.T) {
- p, err := parser.NewParser("conf/nextcloud_ngx.conf")
- if err != nil {
- fmt.Println(err)
- return
- }
- n, _ := p.Parse()
- fn(n.Block, 0)
- c, err := ParseNgxConfig("conf/nextcloud_ngx.conf")
- if err != nil {
- fmt.Println(err)
- return
- }
- fmt.Println(c)
- c, err = ParseNgxConfig("conf/test.conf")
- if err != nil {
- fmt.Println(err)
- return
- }
- fmt.Println(c)
- }
- func fn(block config.IBlock, deep int) {
- if block == nil {
- return
- }
- for _, v := range block.GetDirectives() {
- if len(v.GetComment()) > 0 {
- for _, c := range v.GetComment() {
- fmt.Println(strings.Repeat("\t", deep), c)
- }
- }
- // 将 []config.Parameter 转换为 []string
- params := make([]string, len(v.GetParameters()))
- for i, p := range v.GetParameters() {
- params[i] = p.String()
- }
- fmt.Printf("%s%s %s\n", strings.Repeat("\t", deep), v.GetName(), strings.Join(params, " "))
- fn(v.GetBlock(), deep+1)
- }
- }
|