code: func (c *Command) handleReload(config *Config, agent *Agent) *Config {
  	c.Ui.Output("Reloading configuration...")
  	newConf := c.readConfig()
  	if newConf == nil {
  		c.Ui.Error(fmt.Sprintf("Failed to reload configs"))
  		return config
  	}
  
  	// Change the log level
  	minLevel := logutils.LogLevel(strings.ToUpper(newConf.LogLevel))
  	if ValidateLevelFilter(minLevel, c.logFilter) {
  		c.logFilter.SetMinLevel(minLevel)
  	} else {
  		c.Ui.Error(fmt.Sprintf(
  			"Invalid log level: %s. Valid log levels are: %v",
  			minLevel, c.logFilter.Levels))
  
  		// Keep the current log level
  		newConf.LogLevel = config.LogLevel
  	}
  
  	// Change the event handlers
  	c.scriptHandler.UpdateScripts(newConf.EventScripts())
  
  	// Update the tags in serf
  	if err := agent.SetTags(newConf.Tags); err != nil {
  		c.Ui.Error(fmt.Sprintf("Failed to update tags: %v", err))
  		return newConf
  	}
  
  	return newConf
  }
docs: // handleReload is invoked when we should reload our configs, e.g. SIGHUP