diff options
| author | 2024-01-22 19:14:02 +0800 | |
|---|---|---|
| committer | 2024-01-22 19:14:02 +0800 | |
| commit | 67b9920264b636b079a65b4f78c71310018adb53 (patch) | |
| tree | d2406df277b9461d7dd2dce6781e3f703a88b83c | |
| parent | 1d21288e44001021da1f37b7d061540f6a56190f (diff) | |
| download | ipm-67b9920264b636b079a65b4f78c71310018adb53.tar.gz ipm-67b9920264b636b079a65b4f78c71310018adb53.zip | |
:sparkles: feat(api): allow install package with version
| -rw-r--r-- | src/ipm/api.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/ipm/api.py b/src/ipm/api.py index 1eefb52..9c514e0 100644 --- a/src/ipm/api.py +++ b/src/ipm/api.py @@ -87,6 +87,14 @@ def install( lock = PackageLock() if uri.isalpha(): + # TODO 兼容 >= <= > < 等标识符 + splited_uri = uri.split("==") + name = splited_uri[0] + if len(splited_uri) == 1: + version = None + else: + version = splited_uri[1] + yggdrasil = Yggdrasil(index) if not (lock_index := lock.get_index(index)): @@ -95,11 +103,11 @@ def install( else: yggdrasil.init(INDEX_PATH / lock_index["uuid"]) - if not (remote_ifp := yggdrasil.get(uri)): # TODO 特定版本的捕获 + if not (remote_ifp := yggdrasil.get(name, version=version)): return warning(f"未能在世界树[{yggdrasil.index}]中搜寻到规则包[{uri}].", echo) ifp = loader.load_from_remote( - uri, + name, baseurl=index, filename=remote_ifp["source"], echo=echo, |
