Compare commits
2 Commits
2025.10.19
...
2025.10.19
| Author | SHA1 | Date | |
|---|---|---|---|
| 9c75008c9f | |||
| df2c2b5b56 |
@@ -3,7 +3,7 @@
|
||||
"projects": [
|
||||
"src/cli/cpl.project.json",
|
||||
"src/core/cpl.project.json",
|
||||
"test/cpl.project.json"
|
||||
"src/mail/cpl.project.json"
|
||||
],
|
||||
"defaultProject": "cpl-cli",
|
||||
"scripts": {
|
||||
|
||||
@@ -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]:
|
||||
|
||||
23
src/mail/cpl.project.json
Normal file
23
src/mail/cpl.project.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "cpl-mail",
|
||||
"version": "0.1.0",
|
||||
"type": "library",
|
||||
"license": "",
|
||||
"author": "",
|
||||
"description": "",
|
||||
"homepage": "",
|
||||
"keywords": [],
|
||||
"dependencies": {
|
||||
"cpl-core": "~2024.7.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"cpl-cli": ">2024.7.0"
|
||||
},
|
||||
"references": [],
|
||||
"main": null,
|
||||
"directory": "./",
|
||||
"build": {
|
||||
"include": [],
|
||||
"exclude": []
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user