diff options
| author | 2024-03-30 15:25:11 +0800 | |
|---|---|---|
| committer | 2024-03-30 15:25:11 +0800 | |
| commit | 45a23d14920133281d102760ec9be2be9da82e2b (patch) | |
| tree | 1cfd9c1d5e2bef7a2dbd3843e15d1e04dab053ee /src | |
| parent | bab530d5bd1d8a99959d9067b58fb2ec0f4981f8 (diff) | |
| download | ipm-45a23d14920133281d102760ec9be2be9da82e2b.tar.gz ipm-45a23d14920133281d102760ec9be2be9da82e2b.zip | |
feat(build): add readme file and pyproject file into builded ipk
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) |
