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