code: func main() {
  	p := &ExamplePlugin{
  		Deps: Deps{
  			PluginName:   infra.PluginName(PluginName),
  			Log:          logging.ForPlugin(PluginName),
  			PluginConfig: config.ForPlugin(PluginName),
  		},
  		exampleFinished: make(chan struct{}),
  	}
  	a := agent.NewAgent(
  		agent.AllPlugins(p),
  		agent.QuitOnClose(p.exampleFinished),
  	)
  	if err := a.Run(); err != nil {
  		log.Fatal(err)
  	}
  }
docs: // *************************************************************************
  // This file contains a PluginConfig show case:
  // - plugin binds it's configuration to an example specific Conf structure
  //   (see Init() to learn how the default configuration is set & how it can be
  //    overridden via flags)
  // - cn-infra helps by locating and parsing the configuration file
  //
  // ************************************************************************/