diff options
| author | 2024-01-22 14:22:19 +0800 | |
|---|---|---|
| committer | 2024-01-22 14:22:19 +0800 | |
| commit | 0edbdf019d7f1824ae78829b7b2472421ef0c377 (patch) | |
| tree | 7571f12c033165d561297e9ea3b804d030aaf682 /src | |
| parent | e8952a23ba623f5bbf43b10d5a00ca94387d9c35 (diff) | |
| download | ipm-0edbdf019d7f1824ae78829b7b2472421ef0c377.tar.gz ipm-0edbdf019d7f1824ae78829b7b2472421ef0c377.zip | |
:sparkles: feat(lock): add uuid metadata
Diffstat (limited to 'src')
| -rw-r--r-- | src/ipm/models/lock.py | 19 | ||||
| -rw-r--r-- | src/ipm/utils/uuid.py | 5 |
2 files changed, 22 insertions, 2 deletions
diff --git a/src/ipm/models/lock.py b/src/ipm/models/lock.py index 9346848..1b6c96e 100644 --- a/src/ipm/models/lock.py +++ b/src/ipm/models/lock.py @@ -4,8 +4,10 @@ from . import ipk from ..typing import Dict, List, StrPath, Any from ..const import IPM_PATH, ATTENSION from ..exceptions import SyntaxError +from ..utils.uuid import generate_uuid import toml +import socket class IpmLock(metaclass=ABCMeta): @@ -21,15 +23,28 @@ class IpmLock(metaclass=ABCMeta): def load(self): if not self.source_path.exists(): - self.metadata = {} + self.metadata = { + "host": socket.gethostname(), + "uuid": generate_uuid(), + } self.packages = [] self.storages = [] self.dumps() else: loaded_data = toml.load(self.source_path.open("r", encoding="utf-8")) self.metadata = ( - loaded_data["metadata"] if "metadata" in loaded_data.keys() else {} + loaded_data["metadata"] + if "metadata" in loaded_data.keys() + else { + "host": socket.gethostname(), + "uuid": generate_uuid(), + } ) + if "uuid" not in self.metadata.keys(): + self.metadata = { + "host": socket.gethostname(), + "uuid": generate_uuid(), + } self.packages = ( loaded_data["packages"] if "packages" in loaded_data.keys() else [] ) diff --git a/src/ipm/utils/uuid.py b/src/ipm/utils/uuid.py new file mode 100644 index 0000000..cda3973 --- /dev/null +++ b/src/ipm/utils/uuid.py @@ -0,0 +1,5 @@ +import uuid + + +def generate_uuid() -> str: + return uuid.uuid4().hex |
