docs: def main():
      """
      if lk.py is run as a script, this function will run
      """
      parser = build_parser()
  
      args = parser.parse_args()
      flags = re.LOCALE
  
      if args.dot_all:
          flags |= re.DOTALL
  
      if args.ignorecase:
          flags |= re.IGNORECASE
  
      if args.unicode:
          flags |= re.UNICODE
  
      if args.multiline:
          flags |= re.MULTILINE
  
      exclude_path_flags = re.UNICODE | re.LOCALE
      exclude_path_regexes = [ re.compile(pattern, exclude_path_flags)
                               for pattern in args.exclude_path_patterns ]
  
      pattern = re.escape(args.pattern) if args.escape else args.pattern
  
      try:
          search_manager = SearchManager(regex=re.compile(pattern, flags),
                                         number_processes=args.number_processes,
                                         search_hidden=args.search_hidden,
                                         follow_links=args.follow_links,
                                         search_binary=args.search_binary,
                                         use_ansi_colors=args.use_ansi_colors,
                                         print_stats=args.print_stats,
                                         exclude_path_regexes=exclude_path_regexes,
                                         command_strings=args.command_strings)
  
          search_manager.enqueue_directory(args.directory)
          search_manager.process_queue()
  
      except (KeyboardInterruptError, KeyboardInterrupt):
          sys.stdout.write('\n')
          exit(1)