| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package main
- import (
- "flag"
- "os"
- "github.com/xtls/xray-core/main/commands/base"
- _ "github.com/xtls/xray-core/main/distro/all"
- )
- func main() {
- os.Args = getArgsV4Compatible()
- base.RootCommand.Long = "Xray is a platform for building proxies."
- base.RootCommand.Commands = append(
- []*base.Command{
- cmdRun,
- cmdVersion,
- },
- base.RootCommand.Commands...,
- )
- base.Execute()
- }
- func getArgsV4Compatible() []string {
- if len(os.Args) == 1 {
- return []string{os.Args[0], "run"}
- }
- if os.Args[1][0] != '-' {
- return os.Args
- }
- version := false
- fs := flag.NewFlagSet("", flag.ContinueOnError)
- fs.BoolVar(&version, "version", false, "")
- // parse silently, no usage, no error output
- fs.Usage = func() {}
- fs.SetOutput(&null{})
- err := fs.Parse(os.Args[1:])
- if err == flag.ErrHelp {
- // fmt.Println("DEPRECATED: -h, WILL BE REMOVED IN V5.")
- // fmt.Println("PLEASE USE: xray help")
- // fmt.Println()
- return []string{os.Args[0], "help"}
- }
- if version {
- // fmt.Println("DEPRECATED: -version, WILL BE REMOVED IN V5.")
- // fmt.Println("PLEASE USE: xray version")
- // fmt.Println()
- return []string{os.Args[0], "version"}
- }
- // fmt.Println("COMPATIBLE MODE, DEPRECATED.")
- // fmt.Println("PLEASE USE: xray run [arguments] INSTEAD.")
- // fmt.Println()
- return append([]string{os.Args[0], "run"}, os.Args[1:]...)
- }
- type null struct{}
- func (n *null) Write(p []byte) (int, error) {
- return len(p), nil
- }
|