aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ipm/models/ipk.py11
-rw-r--r--src/ipm/utils/freeze.py8
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)