From 073366f89c4b4fa7d9b721aecbc0c4513d692127 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Fri, 22 Mar 2024 14:53:41 +0800 Subject: [PATCH] fixbug: repo2markdown --- metagpt/utils/repo_to_markdown.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/metagpt/utils/repo_to_markdown.py b/metagpt/utils/repo_to_markdown.py index 76dfe1b82..df916eb5d 100644 --- a/metagpt/utils/repo_to_markdown.py +++ b/metagpt/utils/repo_to_markdown.py @@ -11,6 +11,7 @@ from pathlib import Path from gitignore_parser import parse_gitignore from metagpt.logs import logger +from metagpt.tools.libs.shell import execute from metagpt.utils.common import aread, awrite, get_markdown_codeblock_type, list_files from metagpt.utils.tree import tree @@ -69,6 +70,15 @@ async def _write_file(filename: Path, repo_path: Path) -> str: markdown = f"## {relative_path}\n" mime_type, _ = mimetypes.guess_type(filename.name) + if not mime_type: + try: + stdout, stderr = await execute(f"file {str(filename)}") + if "text" in stdout.lower(): + mime_type = "text/*" + except Exception as e: + logger.debug(f"file:{filename}, error:{e}") + mime_type = "unknown" + if "text/" not in mime_type: logger.info(f"Ignore content: {filename}") markdown += "\n---\n\n"