导出安装包格式变更为zip

This commit is contained in:
jingrow 2025-10-29 14:37:46 +08:00
parent 60a8f3090e
commit 7e5ecf79b4

View File

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