code: func Run() {
  	app.HelpFlag.Short('h')
  	app.Version(version.String())
  	app.VersionFlag.Short('V')
  
  	config := aggregateConfiguration()
  	err := config.Check()
  	goad.HandleErr(err)
  
  	sigChan := make(chan os.Signal, 1)
  	signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM) // but interrupts from kbd are blocked by termbox
  
  	result := start(config, sigChan)
  	defer printSummary(result)
  	if config.Output != "" {
  		defer saveJSONSummary(*outputFile, result)
  	}
  }
docs: // Run the goad cli