diff --git a/cmd/gost/main.go b/cmd/gost/main.go index d3a5a42..7d01f6a 100644 --- a/cmd/gost/main.go +++ b/cmd/gost/main.go @@ -23,6 +23,7 @@ var ( services stringList nodes stringList debug bool + showConfig bool apiAddr string metricsAddr string ) @@ -78,6 +79,7 @@ func init() { flag.BoolVar(&printVersion, "V", false, "print version") flag.StringVar(&outputFormat, "O", "", "output format, one of yaml|json format") flag.BoolVar(&debug, "D", false, "debug mode") + flag.BoolVar(&showConfig, "P", false, "print config only") flag.StringVar(&apiAddr, "api", "", "api service address") flag.StringVar(&metricsAddr, "metrics", "", "metrics service address") flag.Parse() diff --git a/cmd/gost/program.go b/cmd/gost/program.go index 7563397..caa9795 100644 --- a/cmd/gost/program.go +++ b/cmd/gost/program.go @@ -1,6 +1,8 @@ package main import ( + "fmt" + "gopkg.in/yaml.v2" "net/http" "os" @@ -93,6 +95,13 @@ func (p *program) Start() error { log := logger.Default() cfg := config.Global() + if showConfig { + marshal, _ := yaml.Marshal(cfg) + fmt.Println(string(marshal)) + os.Exit(0) + return nil + } + if cfg.API != nil { s, err := buildAPIService(cfg.API) if err != nil {