diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ipm/models/ipk.py | 11 | ||||
| -rw-r--r-- | src/ipm/utils/freeze.py | 8 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/ipm/models/ipk.py b/src/ipm/models/ipk.py index db98eb4..6a314b9 100644 --- a/src/ipm/models/ipk.py +++ b/src/ipm/models/ipk.py @@ -126,13 +126,20 @@ class InfiniProject(InfiniPackage): @property def readme(self) -> str: - project = self._data.get("project") + path = self._source_path.joinpath(self.readme_file) + return path.read_text(encoding="utf-8") + + @property + def readme_file(self) -> str: + project: dict = self._data.unwrap().get("project", {}) if not project: raise ProjectError("项目文件中不存在`project`项!") + if "readme" not in project.keys(): + raise ProjectError("项目文件中不存在`project.readme`项!") path = self._source_path.joinpath(project["readme"]) if not path.exists(): raise ProjectError("配置文件中的自述文件不存在!") - return path.read_text(encoding="utf-8") + return project["readme"] @property def name(self) -> str: diff --git a/src/ipm/utils/freeze.py b/src/ipm/utils/freeze.py index 58314df..878bd2b 100644 --- a/src/ipm/utils/freeze.py +++ b/src/ipm/utils/freeze.py @@ -36,8 +36,14 @@ def build_ipk(ipk: InfiniProject, echo: bool = False) -> InfiniFrozenPackage: success("开发环境构建完毕.", echo) update("复制工程文件...", echo) - shutil.copytree(src_path, arc_dir / "src") + shutil.copytree(src_path, arc_dir.joinpath("src")) shutil.copy2(ipk._source_path / "infini.toml", arc_dir / "infini.toml") + shutil.copy2( + ipk._source_path.joinpath("pyproject.toml"), arc_dir.joinpath("pyproject.toml") + ) + shutil.copy2( + ipk._source_path.joinpath(ipk.readme_file), arc_dir.joinpath(ipk.readme_file) + ) success("工程文件复制完毕.", echo) update("打包 [bold green]ipk[/bold green]文件...", echo) |
