WIP: dev into master #184
@@ -2,8 +2,7 @@
|
|||||||
"name": "cpl",
|
"name": "cpl",
|
||||||
"projects": [
|
"projects": [
|
||||||
"src/cli/cpl.project.json",
|
"src/cli/cpl.project.json",
|
||||||
"src/core/cpl.project.json",
|
"src/core/cpl.project.json"
|
||||||
"test/cpl.project.json"
|
|
||||||
],
|
],
|
||||||
"defaultProject": "cpl-cli",
|
"defaultProject": "cpl-cli",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
from pathlib import Path
|
||||||
from typing import Optional, List, Dict
|
from typing import Optional, List, Dict
|
||||||
|
|
||||||
from cpl.cli.model.cpl_structure_model import CPLStructureModel
|
from cpl.cli.model.cpl_structure_model import CPLStructureModel
|
||||||
@@ -28,6 +29,20 @@ class Workspace(CPLStructureModel):
|
|||||||
self._name = name
|
self._name = name
|
||||||
self._projects = projects
|
self._projects = projects
|
||||||
self._default_project = default_project
|
self._default_project = default_project
|
||||||
|
|
||||||
|
self._actual_projects = []
|
||||||
|
self._project_names = []
|
||||||
|
for project in projects:
|
||||||
|
if Path(project).is_dir() or not Path(project).exists():
|
||||||
|
raise ValueError(f"Project path '{project}' does not exist or is a directory.")
|
||||||
|
|
||||||
|
p = Project.from_file(project)
|
||||||
|
self._actual_projects.append(p)
|
||||||
|
self._project_names.append(p.name)
|
||||||
|
|
||||||
|
if default_project is not None and default_project not in self._project_names:
|
||||||
|
raise ValueError(f"Default project '{default_project}' not found in workspace projects.")
|
||||||
|
|
||||||
self._scripts = scripts
|
self._scripts = scripts
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -48,11 +63,11 @@ class Workspace(CPLStructureModel):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def actual_projects(self) -> List[Project]:
|
def actual_projects(self) -> List[Project]:
|
||||||
return [Project.from_file(p) for p in self._projects]
|
return self._actual_projects
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def project_names(self) -> List[str]:
|
def project_names(self) -> List[str]:
|
||||||
return [Project.from_file(p).name for p in self._projects]
|
return self._project_names
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def default_project(self) -> Optional[str]:
|
def default_project(self) -> Optional[str]:
|
||||||
|
|||||||
Reference in New Issue
Block a user