mirror of
https://github.com/XTLS/Xray-core.git
synced 2024-11-22 08:31:28 +00:00
62 lines
1.4 KiB
Go
62 lines
1.4 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"flag"
|
||
|
"os"
|
||
|
|
||
|
"github.com/xtls/xray-core/v1/main/commands/base"
|
||
|
_ "github.com/xtls/xray-core/v1/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
|
||
|
}
|