code: def _UserUpdateConfigValue(self, configKey, strDescriptor, isDir = True, dbConfigValue = None):
      
      newConfigValue = None
  
      if dbConfigValue is None:
        prompt = "Enter new {0} or 'x' to exit: ".format(strDescriptor)
      else:
        prompt = "Enter 'y' to use existing {0}, enter a new {0} or 'x' to exit: ".format(strDescriptor)
  
      while newConfigValue is None:
        response = goodlogging.Log.Input("CLEAR", prompt)
  
        if response.lower() == 'x':
          sys.exit(0)
        elif dbConfigValue is not None and response.lower() == 'y':
          newConfigValue = dbConfigValue
        elif not isDir:
          newConfigValue = response
          self._db.SetConfigValue(configKey, newConfigValue)
        else:
          if os.path.isdir(response):
            newConfigValue = os.path.abspath(response)
            self._db.SetConfigValue(configKey, newConfigValue)
          else:
            goodlogging.Log.Info("CLEAR", "{0} is not recognised as a directory".format(response))
  
      return newConfigValue
docs: Allow user to set or update config values in the database table.
      This is always called if no valid entry exists in the table already.
  
      Parameters
      ----------
        configKey : string
          Name of config field.
  
        strDescriptor : string
          Description of config field.
  
        isDir : boolean [optional : default = True]
          Set to True if config value is
          expected to be a directory path.
  
        dbConfigValue : string [optional : default = None]
          The value of an existing entry
          for the given config field.
  
      Returns
      ----------
        string
          New value for given config field in database.