aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author苏向夜 <fu050409@163.com>2024-03-30 15:25:11 +0800
committer苏向夜 <fu050409@163.com>2024-03-30 15:25:11 +0800
commit45a23d14920133281d102760ec9be2be9da82e2b (patch)
tree1cfd9c1d5e2bef7a2dbd3843e15d1e04dab053ee
parentbab530d5bd1d8a99959d9067b58fb2ec0f4981f8 (diff)
downloadipm-45a23d14920133281d102760ec9be2be9da82e2b.tar.gz
ipm-45a23d14920133281d102760ec9be2be9da82e2b.zip
feat(build): add readme file and pyproject file into builded ipk
-rw-r--r--examples/example/.gitignore (renamed from examples/.gitignore)8
-rw-r--r--examples/example/README.md1
-rw-r--r--examples/example/infini.toml13
-rw-r--r--examples/example/pyproject.toml17
-rw-r--r--examples/example/src/__init__.py (renamed from coc/src/__init__.py)0
-rw-r--r--examples/example/src/events.py (renamed from coc/src/events.py)0
-rw-r--r--examples/example/src/handlers.py (renamed from coc/src/handlers.py)0
-rw-r--r--examples/example/src/interceptors.py (renamed from coc/src/interceptors.py)0
-rw-r--r--examples/infini.toml14
-rw-r--r--examples/src/__init__.py8
-rw-r--r--examples/src/events.py8
-rw-r--r--examples/src/handlers.py8
-rw-r--r--examples/src/interceptors.py8
-rw-r--r--src/ipm/models/ipk.py11
-rw-r--r--src/ipm/utils/freeze.py8
15 files changed, 53 insertions, 51 deletions
diff --git a/examples/.gitignore b/examples/example/.gitignore
index b43f7a5..2a31abc 100644
--- a/examples/.gitignore
+++ b/examples/example/.gitignore
@@ -3,10 +3,14 @@
__pycache__/
*.pyc
-# Builds
+# IPM Builds
.ipm-build/
dist/
+# Cached Databases
+*.db
+*.sqlite3
+
# Distribution / packaging
eggs/
.eggs/
@@ -51,7 +55,7 @@ MANIFEST
__pypackages__/
# Environments
-.env
+.env*
.venv
env/
venv/
diff --git a/examples/example/README.md b/examples/example/README.md
new file mode 100644
index 0000000..ca82a43
--- /dev/null
+++ b/examples/example/README.md
@@ -0,0 +1 @@
+# EXAMPLE 规则包文档 \ No newline at end of file
diff --git a/examples/example/infini.toml b/examples/example/infini.toml
new file mode 100644
index 0000000..a13d308
--- /dev/null
+++ b/examples/example/infini.toml
@@ -0,0 +1,13 @@
+[project]
+name = "example"
+version = "0.1.0"
+description = "示例规则包"
+authors = [
+ {name = "fu050409",email = "fu050409@163.com"},
+]
+license = "AGPLv3"
+readme = "README.md"
+
+[requirements]
+
+[dependencies]
diff --git a/examples/example/pyproject.toml b/examples/example/pyproject.toml
new file mode 100644
index 0000000..b72ff50
--- /dev/null
+++ b/examples/example/pyproject.toml
@@ -0,0 +1,17 @@
+[project]
+name = "example"
+version = "0.1.0"
+description = "示例规则包"
+authors = [
+ {name = "fu050409",email = "fu050409@163.com"},
+]
+license = {text = "AGPLv3"}
+dependencies = ["infini>2.1.0"]
+requires-python = ">=3.8"
+readme = "README.md"
+
+[tool.pdm]
+distribution = true
+
+[tool.pdm.dev-dependencies]
+dev = ["pytest"]
diff --git a/coc/src/__init__.py b/examples/example/src/__init__.py
index e5bc7df..e5bc7df 100644
--- a/coc/src/__init__.py
+++ b/examples/example/src/__init__.py
diff --git a/coc/src/events.py b/examples/example/src/events.py
index 9bbb43c..9bbb43c 100644
--- a/coc/src/events.py
+++ b/examples/example/src/events.py
diff --git a/coc/src/handlers.py b/examples/example/src/handlers.py
index f997a03..f997a03 100644
--- a/coc/src/handlers.py
+++ b/examples/example/src/handlers.py
diff --git a/coc/src/interceptors.py b/examples/example/src/interceptors.py
index 518d0bd..518d0bd 100644
--- a/coc/src/interceptors.py
+++ b/examples/example/src/interceptors.py
diff --git a/examples/infini.toml b/examples/infini.toml
deleted file mode 100644
index df0c49d..0000000
--- a/examples/infini.toml
+++ /dev/null
@@ -1,14 +0,0 @@
-[project]
-name = "examples"
-version = "0.1.0"
-description = "EXAMPLES 规则包"
-authors = [
- {name = "admin",email = "admin@example.com"},
-]
-license = "MIT"
-webpage = ""
-unzip = 1
-
-[requirements]
-
-[dependencies]
diff --git a/examples/src/__init__.py b/examples/src/__init__.py
deleted file mode 100644
index 9bbb43c..0000000
--- a/examples/src/__init__.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Initialized `events.py` generated by ipm.
-# Regists your text events and regist global variables here.
-# Documents at https://docs.hydroroll.team/ipm
-
-from infini.register import Register
-
-
-register = Register()
diff --git a/examples/src/events.py b/examples/src/events.py
deleted file mode 100644
index 9bbb43c..0000000
--- a/examples/src/events.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Initialized `events.py` generated by ipm.
-# Regists your text events and regist global variables here.
-# Documents at https://docs.hydroroll.team/ipm
-
-from infini.register import Register
-
-
-register = Register()
diff --git a/examples/src/handlers.py b/examples/src/handlers.py
deleted file mode 100644
index f997a03..0000000
--- a/examples/src/handlers.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Initialized `handlers.py` generated by ipm.
-# Regists your handlers here.
-# Documents at https://docs.hydroroll.team/ipm
-
-from infini.register import Register
-
-
-register = Register()
diff --git a/examples/src/interceptors.py b/examples/src/interceptors.py
deleted file mode 100644
index 518d0bd..0000000
--- a/examples/src/interceptors.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Initialized `interceptors.py` generated by ipm.
-# Regists your pre-interceptors and interceptors here.
-# Documents at https://docs.hydroroll.team/ipm
-
-from infini.register import Register
-
-
-register = Register()
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)