code: func (o *Options) Run() error {
  	defer close(o.errCh)
  	if len(o.WriteConfigTo) > 0 {
  		return o.writeConfigFile()
  	}
  
  	proxyServer, err := NewProxyServer(o)
  	if err != nil {
  		return err
  	}
  
  	if o.CleanupAndExit {
  		return proxyServer.CleanupAndExit()
  	}
  
  	o.proxyServer = proxyServer
  	return o.runLoop()
  }
docs: // Run runs the specified ProxyServer.