aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author苏向夜 <fu050409@163.com>2024-01-23 11:46:53 +0800
committer苏向夜 <fu050409@163.com>2024-01-23 11:46:53 +0800
commit0bd127643d829754d962d5491866c480ebeca08c (patch)
treef79790badba26e7f8437d3f5dde87aa8dafff171
parent6355973a3aa847b43ed1b8e8e2347c61c245a41f (diff)
downloadipm-0bd127643d829754d962d5491866c480ebeca08c.tar.gz
ipm-0bd127643d829754d962d5491866c480ebeca08c.zip
:sparkles: feat(cli): add require, unrequire and add, remove command
-rw-r--r--src/ipm/__main__.py58
1 files changed, 56 insertions, 2 deletions
diff --git a/src/ipm/__main__.py b/src/ipm/__main__.py
index e19b759..855b5e7 100644
--- a/src/ipm/__main__.py
+++ b/src/ipm/__main__.py
@@ -11,8 +11,8 @@ main = typer.Typer(
@main.command()
def install(
uri: str = typer.Argument(help="Infini 包的统一资源标识符"),
- index: str = typer.Option(None, help="IPM 包服务器"),
- upgrade: bool = typer.Option(False, "--upgrade", "-u", help="更新 Infini 包", is_flag=True),
+ index: str = typer.Option(None, help="世界树服务器地址"),
+ upgrade: bool = typer.Option(False, "--upgrade", "-u", help="更新 Infini 包"),
force: bool = typer.Option(False, "--force", "-f", help="强制安装"),
):
"""安装一个 Infini 规则包到此计算机"""
@@ -70,5 +70,59 @@ def uninstall(package: str = typer.Argument(help="Infini 项目路径")):
logger.error(error)
+@main.command()
+def require(
+ name: str = typer.Argument(help="Infini 包名"),
+ index: str = typer.Option(None, help="世界树服务器地址"),
+):
+ """新增规则包依赖"""
+ try:
+ api.require(name, index, echo=True)
+ except IpmException as error:
+ logger.error(error)
+
+
+@main.command()
+def unrequire(name: str = typer.Argument(help="Infini 包名")):
+ """删除规则包依赖"""
+ try:
+ api.unrequire(name)
+ except IpmException as error:
+ logger.error(error)
+
+
+@main.command()
+def add(
+ name: str = typer.Argument(help="Infini 包名"),
+ index: str = typer.Option(None, help="世界树服务器地址"),
+):
+ """新增环境依赖"""
+ try:
+ api.add(name, index=index)
+ except IpmException as error:
+ logger.error(error)
+
+
+@main.command()
+def remove(name: str = typer.Argument(help="Infini 包名")):
+ """删除环境依赖"""
+ try:
+ api.remove(name)
+ except IpmException as error:
+ logger.error(error)
+
+
+# TODO
+@main.command()
+def collect():
+ ...
+
+
+# TODO
+@main.command()
+def update():
+ ...
+
+
if __name__ == "__main__":
main()