diff options
| author | 2024-01-21 18:06:56 +0800 | |
|---|---|---|
| committer | 2024-01-21 18:06:56 +0800 | |
| commit | 16d1bd06455f506df84340432b54e1a1d2e9e940 (patch) | |
| tree | 81f309824b6743ec8c5cb0bf532d71d07d127e0c /src | |
| parent | a184d2f54c84e13c3ec45d7fdba9d36727931bf2 (diff) | |
| download | ipm-0.1.0-alpha.4.tar.gz ipm-0.1.0-alpha.4.zip | |
:fix: fix(lock): fix lock error occured in file iov0.1.0-alpha.4
Diffstat (limited to 'src')
| -rw-r--r-- | src/ipm/api.py | 2 | ||||
| -rw-r--r-- | src/ipm/models/lock.py | 17 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/ipm/api.py b/src/ipm/api.py index 3853faa..47f83d2 100644 --- a/src/ipm/api.py +++ b/src/ipm/api.py @@ -97,7 +97,7 @@ def install(uri: str, index: str = "", echo: bool = False) -> None: raise # TODO info(f"开始安装[{temp_ipk.name}]中...", echo) - ipk = extract(STORAGE / temp_ipk.source_path, SRC_HOME, echo) + ipk = extract(STORAGE / temp_ipk.name / temp_ipk.default_name, SRC_HOME, echo) info("正在处理全局包锁...") lock.add(ipk, dump=True) info("全局锁已处理完毕.") diff --git a/src/ipm/models/lock.py b/src/ipm/models/lock.py index 78f4921..9d474a8 100644 --- a/src/ipm/models/lock.py +++ b/src/ipm/models/lock.py @@ -20,17 +20,28 @@ class IpmLock(metaclass=ABCMeta): def load(self): if not self.source_path.exists(): - self.source_path.write_text(ATTENSION) + self.metadata = {} self.packages = {} + source_file = self.source_path.open("w", encoding="utf-8") + source_file.write(ATTENSION + str(self.dumps())) + source_file.close() else: loaded_data = toml.load(self.source_path.open("r", encoding="utf-8")) - self.packages = loaded_data["package"] + self.metadata = ( + loaded_data["metadata"] if "metadata" in loaded_data.keys() else {} + ) + self.packages = ( + loaded_data["package"] if "package" in loaded_data.keys() else [] + ) def dumps(self) -> dict: return {"metadata": self.metadata, "packages": self.packages} def dump(self) -> str: - return toml.dump(self.source_path.open("w+", encoding="utf-8")) + data_to_dump = ATTENSION + toml.dumps(self.dumps()) + source_file = self.source_path.open("w", encoding="utf-8") + source_file.write(data_to_dump) + source_file.close() class PackageLock(IpmLock): |
