code: def main(argv=None):
      
      global Verbose
      global EncodeUtf8
      global csvOutput
      if argv is None:
          argv = sys.argv
  
      if (len(argv) < 3 and not (('-h' in argv) or ('--help' in argv))):
          log.exception('Bad args')
          raise TikaException('Bad args')
      try:
          opts, argv = getopt.getopt(argv[1:], 'hi:s:o:p:v:e:c',
            ['help', 'install=', 'server=', 'output=', 'port=', 'verbose', 'encode', 'csv'])
      except getopt.GetoptError as opt_error:
          msg, bad_opt = opt_error
          log.exception("%s error: Bad option: %s, %s" % (argv[0], bad_opt, msg))
          raise TikaException("%s error: Bad option: %s, %s" % (argv[0], bad_opt, msg))
  
      tikaServerJar = TikaServerJar
      serverHost = ServerHost
      outDir = '.'
      port = Port
      for opt, val in opts:
          if opt   in ('-h', '--help'):    echo2(USAGE); sys.exit()
          elif opt in ('--install'):       tikaServerJar = val
          elif opt in ('--server'):        serverHost = val
          elif opt in ('-o', '--output'):  outDir = val
          elif opt in ('--port'):          port = val
          elif opt in ('-v', '--verbose'): Verbose = 1
          elif opt in ('-e', '--encode'): EncodeUtf8 = 1
          elif opt in ('-c', '--csv'): csvOutput = 1
          else:
              raise TikaException(USAGE)
  
      cmd = argv[0]
      option = argv[1]
      try:
          paths = argv[2:]
      except:
          paths = None
      return runCommand(cmd, option, paths, port, outDir, serverHost=serverHost, tikaServerJar=tikaServerJar, verbose=Verbose, encode=EncodeUtf8)
docs: Run Tika from command line according to USAGE.