feat: 增加nginx config 格式化工具
This commit is contained in:

committed by
zhengkunwang223

parent
7dad47464d
commit
a1ac689a5e
77
backend/utils/nginx/components/upstream_server.go
Normal file
77
backend/utils/nginx/components/upstream_server.go
Normal file
@@ -0,0 +1,77 @@
|
||||
package components
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type UpstreamServer struct {
|
||||
Comment string
|
||||
Address string
|
||||
Flags []string
|
||||
Parameters map[string]string
|
||||
}
|
||||
|
||||
func (uss *UpstreamServer) GetName() string {
|
||||
return "server"
|
||||
}
|
||||
|
||||
func (uss *UpstreamServer) GetBlock() IBlock {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (uss *UpstreamServer) GetParameters() []string {
|
||||
return uss.GetDirective().Parameters
|
||||
}
|
||||
|
||||
func (uss *UpstreamServer) GetComment() string {
|
||||
return uss.Comment
|
||||
}
|
||||
|
||||
func (uss *UpstreamServer) GetDirective() *Directive {
|
||||
directive := &Directive{
|
||||
Name: "server",
|
||||
Parameters: make([]string, 0),
|
||||
Block: nil,
|
||||
}
|
||||
|
||||
directive.Parameters = append(directive.Parameters, uss.Address)
|
||||
|
||||
paramNames := make([]string, 0)
|
||||
for k := range uss.Parameters {
|
||||
paramNames = append(paramNames, k)
|
||||
}
|
||||
sort.Strings(paramNames)
|
||||
|
||||
for _, k := range paramNames {
|
||||
directive.Parameters = append(directive.Parameters, fmt.Sprintf("%s=%s", k, uss.Parameters[k]))
|
||||
}
|
||||
|
||||
directive.Parameters = append(directive.Parameters, uss.Flags...)
|
||||
|
||||
return directive
|
||||
}
|
||||
|
||||
func NewUpstreamServer(directive IDirective) *UpstreamServer {
|
||||
uss := &UpstreamServer{
|
||||
Comment: directive.GetComment(),
|
||||
Flags: make([]string, 0),
|
||||
Parameters: make(map[string]string, 0),
|
||||
}
|
||||
|
||||
for i, parameter := range directive.GetParameters() {
|
||||
if i == 0 {
|
||||
uss.Address = parameter
|
||||
continue
|
||||
}
|
||||
if strings.Contains(parameter, "=") {
|
||||
s := strings.SplitN(parameter, "=", 2)
|
||||
uss.Parameters[s[0]] = s[1]
|
||||
} else {
|
||||
uss.Flags = append(uss.Flags, parameter)
|
||||
}
|
||||
}
|
||||
|
||||
return uss
|
||||
}
|
Reference in New Issue
Block a user