| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package engineering
- import (
- "bytes"
- "fmt"
- "io"
- "os"
- "google.golang.org/protobuf/proto"
- core "github.com/v2fly/v2ray-core/v5"
- "github.com/v2fly/v2ray-core/v5/common/cmdarg"
- "github.com/v2fly/v2ray-core/v5/main/commands/base"
- )
- var (
- configFiles cmdarg.Arg
- configDirs cmdarg.Arg
- configFormat *string
- configDirRecursively *bool
- )
- func setConfigFlags(cmd *base.Command) {
- configFormat = cmd.Flag.String("format", core.FormatAuto, "")
- configDirRecursively = cmd.Flag.Bool("r", false, "")
- cmd.Flag.Var(&configFiles, "config", "")
- cmd.Flag.Var(&configFiles, "c", "")
- cmd.Flag.Var(&configDirs, "confdir", "")
- cmd.Flag.Var(&configDirs, "d", "")
- }
- var cmdConvertPb = &base.Command{
- UsageLine: "{{.Exec}} engineering convertpb [-c config.json] [-d dir]",
- CustomFlags: true,
- Run: func(cmd *base.Command, args []string) {
- setConfigFlags(cmd)
- cmd.Flag.Parse(args)
- config, err := core.LoadConfig(*configFormat, configFiles)
- if err != nil {
- if len(configFiles) == 0 {
- base.Fatalf("%s", newError("failed to load config").Base(err))
- return
- }
- base.Fatalf("%s", newError(fmt.Sprintf("failed to load config: %s", configFiles)).Base(err))
- return
- }
- bytew, err := proto.Marshal(config)
- if err != nil {
- base.Fatalf("%s", newError("failed to marshal config").Base(err))
- return
- }
- io.Copy(os.Stdout, bytes.NewReader(bytew))
- },
- }
|