code: def run_script(self, args, event_writer, input_stream):
          
  
          try:
              if len(args) == 1:
                  # This script is running as an input. Input definitions will be
                  # passed on stdin as XML, and the script will write events on
                  # stdout and log entries on stderr.
                  self._input_definition = InputDefinition.parse(input_stream)
                  self.stream_events(self._input_definition, event_writer)
                  event_writer.close()
                  return 0
  
              elif str(args[1]).lower() == "--scheme":
                  # Splunk has requested XML specifying the scheme for this
                  # modular input Return it and exit.
                  scheme = self.get_scheme()
                  if scheme is None:
                      event_writer.log(
                          EventWriter.FATAL,
                          "Modular input script returned a null scheme.")
                      return 1
                  else:
                      event_writer.write_xml_document(scheme.to_xml())
                      return 0
  
              elif args[1].lower() == "--validate-arguments":
                  validation_definition = ValidationDefinition.parse(input_stream)
                  try:
                      self.validate_input(validation_definition)
                      return 0
                  except Exception as e:
                      root = ET.Element("error")
                      ET.SubElement(root, "message").text = e.message
                      event_writer.write_xml_document(root)
  
                      return 1
              else:
                  err_string = "ERROR Invalid arguments to modular input script:" + ' '.join(
                      args)
                  event_writer._err.write(err_string)
  
          except Exception as e:
              err_string = EventWriter.ERROR + e.message
              event_writer._err.write(err_string)
              return 1
docs: Handles all the specifics of running a modular input
  
          :param args: List of command line arguments passed to this script.
          :param event_writer: An ``EventWriter`` object for writing events.
          :param input_stream: An input stream for reading inputs.
          :returns: An integer to be used as the exit value of this program.