diff --git a/apps/jingrow/jingrow/utils/export_app_package.py b/apps/jingrow/jingrow/utils/export_app_package.py index 099b235..db08c0e 100644 --- a/apps/jingrow/jingrow/utils/export_app_package.py +++ b/apps/jingrow/jingrow/utils/export_app_package.py @@ -2,7 +2,6 @@ 导出应用安装包功能 """ from pathlib import Path -import subprocess import shutil from datetime import datetime @@ -44,18 +43,15 @@ def export_app_package_from_local(app_name: str, apps_dir: Path): else: shutil.copy2(item, dst) - # 打包 - final_filename = f"{app_name}-{timestamp}.tar.gz" - tmp_tar = tmp_dir / final_filename - - subprocess.check_output( - ["tar", "czf", str(tmp_tar), app_name], - cwd=str(tmp_dir) - ) + # 打包为 ZIP + final_filename = f"{app_name}-{timestamp}.zip" + base_name = tmp_dir / f"{app_name}-{timestamp}" + # 生成 {base_name}.zip,压缩 tmp_dir 下的 app_name 目录 + shutil.make_archive(str(base_name), 'zip', root_dir=str(tmp_dir), base_dir=app_name) # 移动到 files 目录 - final_tar = files_dir / final_filename - shutil.move(str(tmp_tar), str(final_tar)) + final_zip_path = files_dir / final_filename + shutil.move(str(base_name) + ".zip", str(final_zip_path)) # 清理临时目录 shutil.rmtree(final_dir, ignore_errors=True) @@ -63,6 +59,6 @@ def export_app_package_from_local(app_name: str, apps_dir: Path): return { "success": True, "filename": final_filename, - "file_path": str(final_tar), - "message": f"应用安装包已导出到: {final_tar}" + "file_path": str(final_zip_path), + "message": f"应用安装包已导出到: {final_zip_path}" }