flags.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "github.com/ethereum/eth-go/ethlog"
  6. "os"
  7. "os/user"
  8. "path"
  9. )
  10. var Identifier string
  11. var KeyRing string
  12. var KeyStore string
  13. var StartRpc bool
  14. var RpcPort int
  15. var UseUPnP bool
  16. var OutboundPort string
  17. var ShowGenesis bool
  18. var AddPeer string
  19. var MaxPeer int
  20. var GenAddr bool
  21. var UseSeed bool
  22. var SecretFile string
  23. var ExportDir string
  24. var NonInteractive bool
  25. var Datadir string
  26. var LogFile string
  27. var ConfigFile string
  28. var DebugFile string
  29. var LogLevel int
  30. // flags specific to cli client
  31. var StartMining bool
  32. var StartJsConsole bool
  33. var InputFile string
  34. func defaultDataDir() string {
  35. usr, _ := user.Current()
  36. return path.Join(usr.HomeDir, ".ethereum")
  37. }
  38. var defaultConfigFile = path.Join(defaultDataDir(), "conf.ini")
  39. func Init() {
  40. flag.Usage = func() {
  41. fmt.Fprintf(os.Stderr, "%s [options] [filename]:\noptions precedence: default < config file < environment variables < command line\n", os.Args[0])
  42. flag.PrintDefaults()
  43. }
  44. flag.StringVar(&Identifier, "id", "", "Custom client identifier")
  45. flag.StringVar(&KeyRing, "keyring", "", "identifier for keyring to use")
  46. flag.StringVar(&KeyStore, "keystore", "db", "system to store keyrings: db|file (db)")
  47. flag.StringVar(&OutboundPort, "port", "30303", "listening port")
  48. flag.BoolVar(&UseUPnP, "upnp", false, "enable UPnP support")
  49. flag.IntVar(&MaxPeer, "maxpeer", 10, "maximum desired peers")
  50. flag.IntVar(&RpcPort, "rpcport", 8080, "port to start json-rpc server on")
  51. flag.BoolVar(&StartRpc, "rpc", false, "start rpc server")
  52. flag.BoolVar(&NonInteractive, "y", false, "non-interactive mode (say yes to confirmations)")
  53. flag.BoolVar(&UseSeed, "seed", true, "seed peers")
  54. flag.BoolVar(&GenAddr, "genaddr", false, "create a new priv/pub key")
  55. flag.StringVar(&SecretFile, "import", "", "imports the file given (hex or mnemonic formats)")
  56. flag.StringVar(&ExportDir, "export", "", "exports the session keyring to files in the directory given")
  57. flag.StringVar(&LogFile, "logfile", "", "log file (defaults to standard output)")
  58. flag.StringVar(&Datadir, "datadir", defaultDataDir(), "specifies the datadir to use")
  59. flag.StringVar(&ConfigFile, "conf", defaultConfigFile, "config file")
  60. flag.StringVar(&DebugFile, "debug", "", "debug file (no debugging if not set)")
  61. flag.IntVar(&LogLevel, "loglevel", int(ethlog.InfoLevel), "loglevel: 0-5: silent,error,warn,info,debug,debug detail)")
  62. flag.BoolVar(&StartMining, "mine", false, "start dagger mining")
  63. flag.BoolVar(&StartJsConsole, "js", false, "launches javascript console")
  64. flag.Parse()
  65. InputFile = flag.Arg(0)
  66. }