aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author苏向夜 <fu050409@163.com>2024-01-27 16:43:14 +0800
committer苏向夜 <fu050409@163.com>2024-01-27 16:43:14 +0800
commitf7d2aa671060f918327a0474d249918a4a1c9604 (patch)
treea9918c769976b59912996326513ca6356bfa509a /src
parent540929e54822676fc5a8e93eac13a98ddbe849d4 (diff)
downloadipm-f7d2aa671060f918327a0474d249918a4a1c9604.tar.gz
ipm-f7d2aa671060f918327a0474d249918a4a1c9604.zip
:recycle: sync(infini): sync changes of infini >= 2.0.0
Diffstat (limited to 'src')
-rw-r--r--src/ipm/api.py60
1 files changed, 53 insertions, 7 deletions
diff --git a/src/ipm/api.py b/src/ipm/api.py
index e0ee64f..6745b04 100644
--- a/src/ipm/api.py
+++ b/src/ipm/api.py
@@ -46,9 +46,21 @@ def init(source_path: StrPath, force: bool = False, echo: bool = False) -> bool:
success("环境检查完毕.", echo)
status.stop()
- name = ask("项目名称:", default=source_path.name, echo=echo)
- description = ask("项目简介:", default=f"{source_path.name.upper()} 规则包", echo=echo)
- license = ask("开源协议:", default="MIT", echo=echo)
+ name = ask("项目名称", default=source_path.name, echo=echo)
+ version = ask("项目版本", default="0.1.0", echo=echo)
+ description = ask("项目简介", default=f"{source_path.name.upper()} 规则包", echo=echo)
+ license = ask("开源协议", default="MIT", echo=echo)
+
+ default_entries = ["__init__.py", f"{name}.py"]
+ info("请选择你要使用的入口文件", echo)
+ for index, default_entry in enumerate(default_entries):
+ info(f"[bold cyan]{index}[/bold cyan]. [green]{default_entry}[/green]", echo)
+ entry_file = ask(
+ "入口文件:",
+ choices=[str(num) for num in range(len(default_entries))],
+ default="0",
+ echo=echo,
+ )
status.start()
toml_file = toml_path.open("w", encoding="utf-8")
@@ -56,7 +68,7 @@ def init(source_path: StrPath, force: bool = False, echo: bool = False) -> bool:
{
"infini": {
"name": name,
- "version": "0.1.0",
+ "version": version,
"description": description,
"license": license,
},
@@ -68,9 +80,43 @@ def init(source_path: StrPath, force: bool = False, echo: bool = False) -> bool:
toml_file.close()
(source_path / "src").mkdir(parents=True, exist_ok=True)
- (source_path / "src" / "__init__.py").write_text(
- "# Initialized `__init__.py` generated by ipm."
- )
+ if entry_file == "0":
+ (source_path / "src" / "__init__.py").write_text(
+ "# Initialized `__init__.py` generated by ipm.\n"
+ "# This is the entry file for this Infini package."
+ "# Documents at https://ipm.hydroroll.team/\n\n"
+ "from .events import register as events_register\n"
+ "from .handlers import register as handlers_register\n"
+ "from .interceptors import register as interceptors_register\n"
+ )
+ (source_path / "src" / "events.py").write_text(
+ "# Initialized `events.py` generated by ipm.\n"
+ "# Regists your text events and regist global variables here."
+ "# Documents at https://ipm.hydroroll.team/\n\n"
+ "from infini.register import Register\n\n\n"
+ "register = Register()\n"
+ )
+ (source_path / "src" / "handlers.py").write_text(
+ "# Initialized `handlers.py` generated by ipm.\n"
+ "# Regists your handlers here."
+ "# Documents at https://ipm.hydroroll.team/\n\n"
+ "from infini.register import Register\n\n\n"
+ "register = Register()\n"
+ )
+ (source_path / "src" / "interceptors.py").write_text(
+ "# Initialized `interceptors.py` generated by ipm.\n"
+ "# Regists your pre-interceptors and interceptors here."
+ "# Documents at https://ipm.hydroroll.team/\n\n"
+ "from infini.register import Register\n\n\n"
+ "register = Register()\n"
+ )
+ else:
+ (source_path / "src" / default_entries[int(entry_file)]).write_text(
+ "# Initialized `__init__.py` generated by ipm.\n"
+ "# Documents at https://ipm.hydroroll.team/\n\n"
+ "from infini.register import Register\n\n\n"
+ "register = Register()\n"
+ )
return True