From 0edbdf019d7f1824ae78829b7b2472421ef0c377 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Mon, 22 Jan 2024 14:22:19 +0800 Subject: :sparkles: feat(lock): add uuid metadata --- src/ipm/models/lock.py | 19 +++++++++++++++++-- src/ipm/utils/uuid.py | 5 +++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/ipm/utils/uuid.py (limited to 'src') 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 -- cgit v1.2.3-70-g09d2