fix flag parsing -- use flagSet after the command
This commit is contained in:
parent
1d5a6065c5
commit
c6c465402e
13
cmd/main.go
13
cmd/main.go
|
@ -1,18 +1,15 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/tendermint/tendermint/config"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
// Parse config flags
|
||||
config.ParseFlags()
|
||||
|
||||
args := flag.Args()
|
||||
args := os.Args[1:]
|
||||
if len(args) == 0 {
|
||||
fmt.Println(`Tendermint
|
||||
|
||||
|
@ -21,13 +18,13 @@ Commands:
|
|||
gen_account Generate new account keypair
|
||||
gen_validator Generate new validator keypair
|
||||
probe_upnp Test UPnP functionality
|
||||
|
||||
tendermint --help for command options`)
|
||||
`)
|
||||
return
|
||||
}
|
||||
|
||||
switch args[0] {
|
||||
case "daemon":
|
||||
config.ParseFlags(args[1:])
|
||||
daemon()
|
||||
case "gen_account":
|
||||
gen_account()
|
||||
|
@ -35,5 +32,7 @@ tendermint --help for command options`)
|
|||
gen_validator()
|
||||
case "probe_upnp":
|
||||
probe_upnp()
|
||||
default:
|
||||
fmt.Println("Unknown command %v", args[0])
|
||||
}
|
||||
}
|
||||
|
|
|
@ -127,16 +127,18 @@ func DataDir() string { return rootDir + "/data" }
|
|||
|
||||
var Config ConfigType
|
||||
|
||||
func setFlags(printHelp *bool) {
|
||||
flag.BoolVar(printHelp, "help", false, "Print this help message.")
|
||||
flag.StringVar(&Config.LAddr, "laddr", Config.LAddr, "Listen address. (0.0.0.0:0 means any interface, any port)")
|
||||
flag.StringVar(&Config.SeedNode, "seed", Config.SeedNode, "Address of seed node")
|
||||
func parseFlags(flags *flag.FlagSet, args []string) (printHelp bool) {
|
||||
flags.BoolVar(&printHelp, "help", false, "Print this help message.")
|
||||
flags.StringVar(&Config.LAddr, "laddr", Config.LAddr, "Listen address. (0.0.0.0:0 means any interface, any port)")
|
||||
flags.StringVar(&Config.SeedNode, "seed", Config.SeedNode, "Address of seed node")
|
||||
flags.Parse(args)
|
||||
return
|
||||
}
|
||||
|
||||
func ParseFlags() {
|
||||
func ParseFlags(args []string) {
|
||||
configFile := ConfigFile()
|
||||
|
||||
// try to read configuration. if missing, write default
|
||||
// try to read configuration from file. if missing, write default
|
||||
configBytes, err := ioutil.ReadFile(configFile)
|
||||
if err != nil {
|
||||
defaultConfig.write(configFile)
|
||||
|
@ -157,11 +159,10 @@ func ParseFlags() {
|
|||
}
|
||||
|
||||
// try to parse arg flags, which can override file configuration.
|
||||
var printHelp bool
|
||||
setFlags(&printHelp)
|
||||
flag.Parse()
|
||||
flags := flag.NewFlagSet("main", flag.ExitOnError)
|
||||
printHelp := parseFlags(flags, args)
|
||||
if printHelp {
|
||||
flag.PrintDefaults()
|
||||
flags.PrintDefaults()
|
||||
os.Exit(0)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue