|
|
|
|
@ -939,17 +939,60 @@ namespace O3DE::ProjectManager
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
AZ::Outcome<void, AZStd::string> PythonBindings::AddGemRepo(const QString& repoUri)
|
|
|
|
|
bool PythonBindings::AddGemRepo(const QString& repoUri)
|
|
|
|
|
{
|
|
|
|
|
// o3de scripts need method added
|
|
|
|
|
(void)repoUri;
|
|
|
|
|
return AZ::Failure<AZStd::string>("Adding Gem Repo not implemented yet in o3de scripts.");
|
|
|
|
|
bool registrationResult = false;
|
|
|
|
|
bool result = ExecuteWithLock(
|
|
|
|
|
[&]
|
|
|
|
|
{
|
|
|
|
|
auto pyUri = QString_To_Py_String(repoUri);
|
|
|
|
|
auto pythonRegistrationResult = m_register.attr("register")(
|
|
|
|
|
pybind11::none(), pybind11::none(), pybind11::none(), pybind11::none(), pybind11::none(), pybind11::none(), pyUri);
|
|
|
|
|
|
|
|
|
|
// Returns an exit code so boolify it then invert result
|
|
|
|
|
registrationResult = !pythonRegistrationResult.cast<bool>();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return result && registrationResult;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool PythonBindings::RemoveGemRepo(const QString& repoUri)
|
|
|
|
|
{
|
|
|
|
|
bool registrationResult = false;
|
|
|
|
|
bool result = ExecuteWithLock(
|
|
|
|
|
[&]
|
|
|
|
|
{
|
|
|
|
|
auto pythonRegistrationResult = m_register.attr("register")(
|
|
|
|
|
pybind11::none(), // engine_path
|
|
|
|
|
pybind11::none(), // project_path
|
|
|
|
|
pybind11::none(), // gem_path
|
|
|
|
|
pybind11::none(), // external_subdir_path
|
|
|
|
|
pybind11::none(), // template_path
|
|
|
|
|
pybind11::none(), // restricted_path
|
|
|
|
|
QString_To_Py_String(repoUri), // repo_uri
|
|
|
|
|
pybind11::none(), // default_engines_folder
|
|
|
|
|
pybind11::none(), // default_projects_folder
|
|
|
|
|
pybind11::none(), // default_gems_folder
|
|
|
|
|
pybind11::none(), // default_templates_folder
|
|
|
|
|
pybind11::none(), // default_restricted_folder
|
|
|
|
|
pybind11::none(), // default_third_party_folder
|
|
|
|
|
pybind11::none(), // external_subdir_engine_path
|
|
|
|
|
pybind11::none(), // external_subdir_project_path
|
|
|
|
|
true, // remove
|
|
|
|
|
false // force
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Returns an exit code so boolify it then invert result
|
|
|
|
|
registrationResult = !pythonRegistrationResult.cast<bool>();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return result && registrationResult;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GemRepoInfo PythonBindings::GetGemRepoInfo(pybind11::handle repoUri)
|
|
|
|
|
{
|
|
|
|
|
GemRepoInfo gemRepoInfo;
|
|
|
|
|
gemRepoInfo.m_repoLink = Py_To_String(repoUri);
|
|
|
|
|
gemRepoInfo.m_repoUri = Py_To_String(repoUri);
|
|
|
|
|
|
|
|
|
|
auto data = m_manifest.attr("get_repo_json_data")(repoUri);
|
|
|
|
|
if (pybind11::isinstance<pybind11::dict>(data))
|
|
|
|
|
@ -957,7 +1000,7 @@ namespace O3DE::ProjectManager
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
// required
|
|
|
|
|
gemRepoInfo.m_repoLink = Py_To_String(data["repo_uri"]);
|
|
|
|
|
gemRepoInfo.m_repoUri = Py_To_String(data["repo_uri"]);
|
|
|
|
|
gemRepoInfo.m_name = Py_To_String(data["repo_name"]);
|
|
|
|
|
gemRepoInfo.m_creator = Py_To_String(data["origin"]);
|
|
|
|
|
|
|
|
|
|
@ -1019,13 +1062,13 @@ namespace O3DE::ProjectManager
|
|
|
|
|
#else
|
|
|
|
|
GemRepoInfo mockJohnRepo("JohnCreates", "John Smith", QDateTime(QDate(2021, 8, 31), QTime(11, 57)), true);
|
|
|
|
|
mockJohnRepo.m_summary = "John's Summary. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sollicitudin dapibus urna";
|
|
|
|
|
mockJohnRepo.m_repoLink = "https://github.com/o3de/o3de";
|
|
|
|
|
mockJohnRepo.m_repoUri = "https://github.com/o3de/o3de";
|
|
|
|
|
mockJohnRepo.m_additionalInfo = "John's additional info. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sollicitu.";
|
|
|
|
|
gemRepos.push_back(mockJohnRepo);
|
|
|
|
|
|
|
|
|
|
GemRepoInfo mockJaneRepo("JanesGems", "Jane Doe", QDateTime(QDate(2021, 9, 10), QTime(18, 23)), false);
|
|
|
|
|
mockJaneRepo.m_summary = "Jane's Summary.";
|
|
|
|
|
mockJaneRepo.m_repoLink = "https://github.com/o3de/o3de.org";
|
|
|
|
|
mockJaneRepo.m_repoUri = "https://github.com/o3de/o3de.org";
|
|
|
|
|
gemRepos.push_back(mockJaneRepo);
|
|
|
|
|
#endif // MOCK_GEM_REPO_INFO
|
|
|
|
|
|
|
|
|
|
|