code: func main() {
  	app := cli.NewApp()
  	app.Name = "puppeth"
  	app.Usage = "assemble and maintain private Ethereum networks"
  	app.Flags = []cli.Flag{
  		cli.StringFlag{
  			Name:  "network",
  			Usage: "name of the network to administer (no spaces or hyphens, please)",
  		},
  		cli.IntFlag{
  			Name:  "loglevel",
  			Value: 3,
  			Usage: "log level to emit to the screen",
  		},
  	}
  	app.Before = func(c *cli.Context) error {
  		// Set up the logger to print everything and the random generator
  		log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(c.Int("loglevel")), log.StreamHandler(os.Stdout, log.TerminalFormat(true))))
  		rand.Seed(time.Now().UnixNano())
  
  		return nil
  	}
  	app.Action = runWizard
  	app.Run(os.Args)
  }
docs: // main is just a boring entry point to set up the CLI app.