Added functionality to set dependencies for all projects in workspace
This commit is contained in:
@@ -55,6 +55,8 @@ class Application(ApplicationABC):
|
||||
|
||||
try:
|
||||
for project in self._workspace.projects:
|
||||
Console.write_line(f'Set dependencies {self._version_pipe.transform(version)} for {project}')
|
||||
self._version_setter.set_dependencies(self._workspace.projects[project], version)
|
||||
if not project.startswith('cpl'):
|
||||
continue
|
||||
|
||||
|
@@ -16,7 +16,7 @@
|
||||
"LicenseName": "",
|
||||
"LicenseDescription": "",
|
||||
"Dependencies": [
|
||||
"sh_cpl-core>=2022.6.15.dev4"
|
||||
"cpl-core>=2022.6.15.dev5"
|
||||
],
|
||||
"PythonVersion": ">=3.10.4",
|
||||
"PythonPath": {
|
||||
|
@@ -11,14 +11,27 @@ class VersionSetterService:
|
||||
def __init__(self, env: ApplicationEnvironmentABC):
|
||||
self._env = env
|
||||
|
||||
def set_version(self, file: str, version: dict):
|
||||
def _read_file(self, file: str) -> dict:
|
||||
project_json = {}
|
||||
with open(os.path.join(self._env.working_directory, file), 'r', encoding='utf-8') as f:
|
||||
# load json
|
||||
project_json = json.load(f)
|
||||
f.close()
|
||||
|
||||
return project_json
|
||||
|
||||
def _write_file(self, file: str, project_json: dict):
|
||||
with open(os.path.join(self._env.working_directory, file), 'w', encoding='utf-8') as f:
|
||||
f.write(json.dumps(project_json, indent=2))
|
||||
f.close()
|
||||
|
||||
def set_version(self, file: str, version: dict):
|
||||
project_json = self._read_file(file)
|
||||
project_json['ProjectSettings']['Version'] = version
|
||||
self._write_file(file, project_json)
|
||||
|
||||
def set_dependencies(self, file: str, version: dict):
|
||||
project_json = self._read_file(file)
|
||||
dependencies = project_json['ProjectSettings']['Dependencies']
|
||||
new_deps = []
|
||||
for dependency in dependencies:
|
||||
@@ -30,7 +43,4 @@ class VersionSetterService:
|
||||
new_deps.append(dependency.replace(dep_version, f'{version["Major"]}.{version["Minor"]}.{version["Micro"]}'))
|
||||
|
||||
project_json['ProjectSettings']['Dependencies'] = new_deps
|
||||
|
||||
with open(os.path.join(self._env.working_directory, file), 'w', encoding='utf-8') as f:
|
||||
f.write(json.dumps(project_json, indent=2))
|
||||
f.close()
|
||||
self._write_file(file, project_json)
|
||||
|
Reference in New Issue
Block a user