test.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package commands
  2. import (
  3. "fmt"
  4. "log"
  5. "github.com/v2fly/v2ray-core/v4"
  6. "github.com/v2fly/v2ray-core/v4/main/commands/base"
  7. )
  8. // CmdTest tests config files
  9. var CmdTest = &base.Command{
  10. CustomFlags: true,
  11. UsageLine: "{{.Exec}} test [-format=json] [-c config.json] [-d dir]",
  12. Short: "test config files",
  13. Long: `
  14. Test config files, without launching V2Ray server.
  15. Arguments:
  16. -c, -config <file>
  17. Config file for V2Ray. Multiple assign is accepted.
  18. -d, -confdir <dir>
  19. A dir with config files. Multiple assign is accepted.
  20. -r
  21. Load confdir recursively.
  22. -format <format>
  23. Format of input files. (default "json")
  24. Examples:
  25. {{.Exec}} {{.LongName}} -c config.json
  26. {{.Exec}} {{.LongName}} -d path/to/dir
  27. Use "{{.Exec}} help format-loader" for more information about format.
  28. `,
  29. Run: executeTest,
  30. }
  31. func executeTest(cmd *base.Command, args []string) {
  32. setConfigFlags(cmd)
  33. cmd.Flag.Parse(args)
  34. extension, err := core.GetLoaderExtensions(*configFormat)
  35. if err != nil {
  36. base.Fatalf(err.Error())
  37. }
  38. if len(configDirs) > 0 {
  39. dirReader := readConfDir
  40. if *configDirRecursively {
  41. dirReader = readConfDirRecursively
  42. }
  43. for _, d := range configDirs {
  44. log.Println("Using confdir from arg:", d)
  45. configFiles = append(configFiles, dirReader(d, extension)...)
  46. }
  47. }
  48. printVersion()
  49. _, err = startV2Ray()
  50. if err != nil {
  51. base.Fatalf("Test failed: %s", err)
  52. }
  53. fmt.Println("Configuration OK.")
  54. }