def run_script(self, args, event_writer, input_stream):
        """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.
        """

        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
def run_script ( self , args , event_writer , input_stream ) : try : if len ( args ) == 1 : 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" : 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
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.