forked from Shinonome/caelestia-cli
fix: ensure only single resolve for manifest comps
This commit is contained in:
@@ -68,6 +68,7 @@ class ManifestComponent:
|
||||
|
||||
@dataclass
|
||||
class _ManifestData:
|
||||
resolved_comps: bool = False
|
||||
enabled_comps: list[str] = field(default_factory=list)
|
||||
disabled_comps: list[str] = field(default_factory=list)
|
||||
|
||||
@@ -120,6 +121,9 @@ class Manifest:
|
||||
) -> None:
|
||||
"""Resolves enabled/disabled components. This MUST be called before calling any other method."""
|
||||
|
||||
if self._data.resolved_comps:
|
||||
return
|
||||
|
||||
enable_set = set(enable or [])
|
||||
disable_set = set(disable or [])
|
||||
known = set(self.components)
|
||||
@@ -141,6 +145,7 @@ class Manifest:
|
||||
self._data.enabled_comps.append(name)
|
||||
else:
|
||||
self._data.disabled_comps.append(name)
|
||||
self._data.resolved_comps = True
|
||||
|
||||
def enabled_entries(self) -> list[ManifestEntry]:
|
||||
"""The entries of every enabled component."""
|
||||
|
||||
Reference in New Issue
Block a user