Update tool zip package structure to support new directory layout
This commit is contained in:
parent
d654838068
commit
d5e6e4c44e
@ -259,59 +259,25 @@ def _install_single_tool_directory(tool_dir: str, tool_data: Dict[str, Any]) ->
|
|||||||
tool_frontend_dir.mkdir(parents=True, exist_ok=True)
|
tool_frontend_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
# 复制前端组件文件(如果存在)
|
# 复制前端组件文件(如果存在)
|
||||||
frontend_source = tool_dir_path / "frontend"
|
# 结构:tool_name/frontend/tool_name/tool_name.vue
|
||||||
|
frontend_source = tool_dir_path / "frontend" / tool_name
|
||||||
if frontend_source.exists() and frontend_source.is_dir():
|
if frontend_source.exists() and frontend_source.is_dir():
|
||||||
# 如果前端目录下有子目录(如 frontend/{tool_id}/),复制整个子目录
|
# 复制 frontend/tool_name/ 目录下的所有内容到目标目录
|
||||||
# 否则直接复制 frontend/ 下的所有文件到工具目录
|
if tool_frontend_dir.exists():
|
||||||
subdirs = [d for d in frontend_source.iterdir() if d.is_dir()]
|
shutil.rmtree(tool_frontend_dir)
|
||||||
if subdirs:
|
shutil.copytree(frontend_source, tool_frontend_dir)
|
||||||
# 有子目录,复制第一个子目录的内容
|
logger.info(f"复制前端组件目录: {frontend_source} -> {tool_frontend_dir}")
|
||||||
source_subdir = subdirs[0]
|
|
||||||
if tool_frontend_dir.exists():
|
|
||||||
shutil.rmtree(tool_frontend_dir)
|
|
||||||
shutil.copytree(source_subdir, tool_frontend_dir)
|
|
||||||
logger.info(f"复制前端组件目录: {source_subdir} -> {tool_frontend_dir}")
|
|
||||||
else:
|
|
||||||
# 没有子目录,直接复制所有文件
|
|
||||||
if tool_frontend_dir.exists():
|
|
||||||
shutil.rmtree(tool_frontend_dir)
|
|
||||||
tool_frontend_dir.mkdir(parents=True, exist_ok=True)
|
|
||||||
for item in frontend_source.iterdir():
|
|
||||||
if item.is_file():
|
|
||||||
shutil.copy2(item, tool_frontend_dir / item.name)
|
|
||||||
logger.info(f"复制前端组件: {item.name} -> {tool_frontend_dir}")
|
|
||||||
elif item.is_dir():
|
|
||||||
shutil.copytree(item, tool_frontend_dir / item.name)
|
|
||||||
logger.info(f"复制前端组件目录: {item.name} -> {tool_frontend_dir}")
|
|
||||||
|
|
||||||
# 复制后端文件(如果存在)
|
# 复制后端文件(如果存在)
|
||||||
backend_source = tool_dir_path / "backend"
|
# 结构:tool_name/backend/tool_name/tool_name.py
|
||||||
|
backend_source = tool_dir_path / "backend" / tool_name
|
||||||
if backend_source.exists() and backend_source.is_dir():
|
if backend_source.exists() and backend_source.is_dir():
|
||||||
backend_target = jingrow_root / "tools" / tool_name
|
backend_target = jingrow_root / "tools" / tool_name
|
||||||
backend_target.mkdir(parents=True, exist_ok=True)
|
# 复制 backend/tool_name/ 目录下的所有内容到目标目录
|
||||||
|
if backend_target.exists():
|
||||||
# 如果后端目录下有子目录(如 backend/{tool_name}/),复制子目录的内容
|
shutil.rmtree(backend_target)
|
||||||
# 否则直接复制 backend/ 下的所有文件
|
shutil.copytree(backend_source, backend_target)
|
||||||
subdirs = [d for d in backend_source.iterdir() if d.is_dir()]
|
logger.info(f"复制后端文件目录: {backend_source} -> {backend_target}")
|
||||||
if subdirs:
|
|
||||||
# 有子目录,复制第一个子目录的内容
|
|
||||||
source_subdir = subdirs[0]
|
|
||||||
if backend_target.exists():
|
|
||||||
shutil.rmtree(backend_target)
|
|
||||||
shutil.copytree(source_subdir, backend_target)
|
|
||||||
logger.info(f"复制后端文件目录: {source_subdir} -> {backend_target}")
|
|
||||||
else:
|
|
||||||
# 没有子目录,直接复制所有文件
|
|
||||||
if backend_target.exists():
|
|
||||||
shutil.rmtree(backend_target)
|
|
||||||
backend_target.mkdir(parents=True, exist_ok=True)
|
|
||||||
for item in backend_source.iterdir():
|
|
||||||
if item.is_file():
|
|
||||||
shutil.copy2(item, backend_target / item.name)
|
|
||||||
logger.info(f"复制后端文件: {item.name} -> {backend_target}")
|
|
||||||
elif item.is_dir():
|
|
||||||
shutil.copytree(item, backend_target / item.name)
|
|
||||||
logger.info(f"复制后端文件目录: {item.name} -> {backend_target}")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'success': True,
|
'success': True,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user