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)
|
||||
|
||||
# 复制前端组件文件(如果存在)
|
||||
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():
|
||||
# 如果前端目录下有子目录(如 frontend/{tool_id}/),复制整个子目录
|
||||
# 否则直接复制 frontend/ 下的所有文件到工具目录
|
||||
subdirs = [d for d in frontend_source.iterdir() if d.is_dir()]
|
||||
if subdirs:
|
||||
# 有子目录,复制第一个子目录的内容
|
||||
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}")
|
||||
# 复制 frontend/tool_name/ 目录下的所有内容到目标目录
|
||||
if tool_frontend_dir.exists():
|
||||
shutil.rmtree(tool_frontend_dir)
|
||||
shutil.copytree(frontend_source, tool_frontend_dir)
|
||||
logger.info(f"复制前端组件目录: {frontend_source} -> {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():
|
||||
backend_target = jingrow_root / "tools" / tool_name
|
||||
backend_target.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# 如果后端目录下有子目录(如 backend/{tool_name}/),复制子目录的内容
|
||||
# 否则直接复制 backend/ 下的所有文件
|
||||
subdirs = [d for d in backend_source.iterdir() if d.is_dir()]
|
||||
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}")
|
||||
# 复制 backend/tool_name/ 目录下的所有内容到目标目录
|
||||
if backend_target.exists():
|
||||
shutil.rmtree(backend_target)
|
||||
shutil.copytree(backend_source, backend_target)
|
||||
logger.info(f"复制后端文件目录: {backend_source} -> {backend_target}")
|
||||
|
||||
return {
|
||||
'success': True,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user