code: def run(self, args):
          
          # set output stream.
          if self.outputStream:
              self.linter.reporter.set_output(self.outputStream)
          try:
              args = self.linter.load_command_line_configuration(args)
          except SystemExit as exc:
              if exc.code == 2:  # bad options
                  exc.code = 32
              raise
          if not args:
              self.displayHelp()
          # Check for 'strict-epydoc' option.
          if self.allowOptions and not self.linter.option_value("strict-epydoc"):
              for msg in ["W9203", "W9205"]:
                  self.linter.disable(msg)
  
          # insert current working directory to the python path to have a correct
          # behaviour.
          sys.path.insert(0, os.getcwd())
          # set exceptions for name checking.
          self.setNameExceptions(args)
  
          # check for diff option.
          self.diffOption = self.linter.option_value("diff")
          if self.diffOption:
              self.prepareDiff()
  
          # check codes.
          self.linter.check(args)
  
          # show diff of warnings if diff option on.
          if self.diffOption:
              diffCount = self.showDiffResults()
              exitCode = 1 if diffCount else 0
              sys.exit(exitCode)
  
          sys.exit(self.linter.msg_status)
docs: Setup the environment, and run pylint.
  
          @param args: arguments will be passed to pylint
          @type args: list of string