Workspace check project existence
All checks were successful
Test before pr merge / test-lint (pull_request) Successful in 6s
Build on push / prepare (push) Successful in 11s
Build on push / query (push) Successful in 19s
Build on push / core (push) Successful in 19s
Build on push / dependency (push) Successful in 19s
Build on push / cli (push) Successful in 19s
Build on push / application (push) Successful in 16s
Build on push / translation (push) Successful in 17s
Build on push / database (push) Successful in 20s
Build on push / mail (push) Successful in 20s
Build on push / auth (push) Successful in 15s
Build on push / api (push) Successful in 16s

This commit is contained in:
2025-10-19 19:56:59 +02:00
parent e3b19c9984
commit df2c2b5b56
2 changed files with 18 additions and 4 deletions

View File

@@ -2,8 +2,7 @@
"name": "cpl",
"projects": [
"src/cli/cpl.project.json",
"src/core/cpl.project.json",
"test/cpl.project.json"
"src/core/cpl.project.json"
],
"defaultProject": "cpl-cli",
"scripts": {

View File

@@ -1,3 +1,4 @@
from pathlib import Path
from typing import Optional, List, Dict
from cpl.cli.model.cpl_structure_model import CPLStructureModel
@@ -28,6 +29,20 @@ class Workspace(CPLStructureModel):
self._name = name
self._projects = projects
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
@property
@@ -48,11 +63,11 @@ class Workspace(CPLStructureModel):
@property
def actual_projects(self) -> List[Project]:
return [Project.from_file(p) for p in self._projects]
return self._actual_projects
@property
def project_names(self) -> List[str]:
return [Project.from_file(p).name for p in self._projects]
return self._project_names
@property
def default_project(self) -> Optional[str]: