Make remove_invalid_o3de_projects take a path and return a value

Signed-off-by: pconroy <pconroy@amazon.com>
main
pconroy 5 years ago
parent e0c3d15d5a
commit ae6a424064

@ -483,9 +483,9 @@ namespace O3DE::ProjectManager
return displayFirstTimeContent;
}
void ProjectsScreen::RemoveInvalidProjects()
bool ProjectsScreen::RemoveInvalidProjects()
{
PythonBindingsInterface::Get()->RemoveInvalidProjects();
return PythonBindingsInterface::Get()->RemoveInvalidProjects();
}
void ProjectsScreen::StartProjectBuild(const ProjectInfo& projectInfo)

@ -59,7 +59,7 @@ namespace O3DE::ProjectManager
ProjectButton* CreateProjectButton(ProjectInfo& project, QLayout* flowLayout, bool processing = false);
void ResetProjectsContent();
bool ShouldDisplayFirstTimeContent();
void RemoveInvalidProjects();
bool RemoveInvalidProjects();
void StartProjectBuild(const ProjectInfo& projectInfo);
QList<ProjectInfo>::iterator RequiresBuildProjectIterator(const QString& projectPath);

@ -755,13 +755,19 @@ namespace O3DE::ProjectManager
});
}
void PythonBindings::RemoveInvalidProjects()
bool PythonBindings::RemoveInvalidProjects()
{
ExecuteWithLockErrorHandling(
bool removalResult = false;
bool result = ExecuteWithLock(
[&]
{
m_register.attr("remove_invalid_o3de_projects")();
auto pythonRemovalResult = m_register.attr("remove_invalid_o3de_projects")();
// Returns an exit code so boolify it then invert result
removalResult = !pythonRemovalResult.cast<bool>();
});
return result && removalResult;
}
AZ::Outcome<void, AZStd::string> PythonBindings::UpdateProject(const ProjectInfo& projectInfo)

@ -50,7 +50,7 @@ namespace O3DE::ProjectManager
AZ::Outcome<void, AZStd::string> UpdateProject(const ProjectInfo& projectInfo) override;
AZ::Outcome<void, AZStd::string> AddGemToProject(const QString& gemPath, const QString& projectPath) override;
AZ::Outcome<void, AZStd::string> RemoveGemFromProject(const QString& gemPath, const QString& projectPath) override;
void RemoveInvalidProjects() override;
bool RemoveInvalidProjects() override;
// ProjectTemplate
AZ::Outcome<QVector<ProjectTemplateInfo>> GetProjectTemplates(const QString& projectPath = {}) override;

@ -144,7 +144,7 @@ namespace O3DE::ProjectManager
/**
* Removes invalid projects from the manifest
*/
virtual void RemoveInvalidProjects() = 0;
virtual bool RemoveInvalidProjects() = 0;
// Project Templates

@ -658,13 +658,20 @@ def register(engine_path: pathlib.Path = None,
return result
def remove_invalid_o3de_projects() -> None:
json_data = manifest.load_o3de_manifest()
def remove_invalid_o3de_projects(manifest_path: pathlib.Path = None) -> int:
if not manifest_path:
manifest_path = manifest.get_o3de_manifest()
json_data = manifest.load_o3de_manifest(manifest_path)
result = 0
for project in json_data['projects']:
if not validation.valid_o3de_project_json(pathlib.Path(project).resolve() / 'project.json'):
logger.warn(f"Project path {project} is invalid.")
register(project_path=pathlib.Path(project), remove=True)
result = register(project_path=pathlib.Path(project), remove=True)
return result
def remove_invalid_o3de_objects() -> None:
json_data = manifest.load_o3de_manifest()

Loading…
Cancel
Save