| 123456789101112131415161718192021222324252627282930313233343536373839 |
- package conf
- import (
- "strings"
- "v2ray.com/core/app/commander"
- loggerservice "v2ray.com/core/app/log/command"
- handlerservice "v2ray.com/core/app/proxyman/command"
- statsservice "v2ray.com/core/app/stats/command"
- "v2ray.com/core/common/serial"
- )
- type ApiConfig struct {
- Tag string `json:"tag"`
- Services []string `json:"services"`
- }
- func (c *ApiConfig) Build() (*commander.Config, error) {
- if len(c.Tag) == 0 {
- return nil, newError("Api tag can't be empty.")
- }
- services := make([]*serial.TypedMessage, 0, 16)
- for _, s := range c.Services {
- switch strings.ToLower(s) {
- case "handlerservice":
- services = append(services, serial.ToTypedMessage(&handlerservice.Config{}))
- case "loggerservice":
- services = append(services, serial.ToTypedMessage(&loggerservice.Config{}))
- case "statsservice":
- services = append(services, serial.ToTypedMessage(&statsservice.Config{}))
- }
- }
- return &commander.Config{
- Tag: c.Tag,
- Service: services,
- }, nil
- }
|