logic: fixed custom commands
* allow filesystem to rename temp db after indexing * changed custom command variable syntax * adjusted test checklist for custom commands
This commit is contained in:
@@ -85,6 +85,7 @@ Task::TaskState TaskExecuteCustomCommands::doUpdate(std::shared_ptr<Blackboard>
|
||||
|
||||
void TaskExecuteCustomCommands::doExit(std::shared_ptr<Blackboard> blackboard)
|
||||
{
|
||||
m_storage.reset();
|
||||
float duration = utility::duration(m_start);
|
||||
blackboard->update<float>("index_time", [duration](float currentDuration) { return currentDuration + duration; });
|
||||
}
|
||||
|
||||
@@ -42,16 +42,16 @@ std::vector<std::shared_ptr<IndexerCommand>> SourceGroupCustomCommand::getIndexe
|
||||
{
|
||||
std::wstring customCommand = m_settings->getCustomCommand();
|
||||
|
||||
customCommand = utility::replace(customCommand, L"$PROJECT_PATH", L'\"' + m_settings->getProjectSettings()->getProjectFilePath().wstr() + L'\"');
|
||||
customCommand = utility::replace(customCommand, L"$DB_PATH", L'\"' + m_settings->getProjectSettings()->getTempDBFilePath().wstr() + L'\"');
|
||||
customCommand = utility::replace(customCommand, L"$DB_VERSION", L'\"' + std::to_wstring(SqliteIndexStorage::getStorageVersion()) + L'\"');
|
||||
customCommand = utility::replace(customCommand, L"%{PROJECT_FILE_PATH}", L'\"' + m_settings->getProjectSettings()->getProjectFilePath().wstr() + L'\"');
|
||||
customCommand = utility::replace(customCommand, L"%{DATABASE_FILE_PATH}", L'\"' + m_settings->getProjectSettings()->getTempDBFilePath().wstr() + L'\"');
|
||||
customCommand = utility::replace(customCommand, L"%{DATABASE_VERSION}", L'\"' + std::to_wstring(SqliteIndexStorage::getStorageVersion()) + L'\"');
|
||||
|
||||
std::vector<std::shared_ptr<IndexerCommand>> indexerCommands;
|
||||
for (const FilePath& sourcePath: getAllSourceFilePaths())
|
||||
{
|
||||
if (filesToIndex.find(sourcePath) != filesToIndex.end())
|
||||
{
|
||||
std::wstring command = utility::replace(customCommand, L"$SOURCE_PATH", L'\"' + sourcePath.wstr() + L'\"');
|
||||
std::wstring command = utility::replace(customCommand, L"%{SOURCE_FILE_PATH}", L'\"' + sourcePath.wstr() + L'\"');
|
||||
|
||||
indexerCommands.push_back(std::make_shared<IndexerCommandCustom>(sourcePath, command));
|
||||
}
|
||||
|
||||
@@ -31,15 +31,15 @@ void QtProjectWizzardContentCustomCommand::populate(QGridLayout* layout, int& ro
|
||||
addHelpButton(
|
||||
"Custom Command",
|
||||
"<p>Specify the commandline call that will be executed for each source file in this Source Group. "
|
||||
"You can use the following variables, $SOURCE_PATH is mandatory.</p>"
|
||||
"You can use the following variables, %{SOURCE_FILE_PATH} is mandatory.</p>"
|
||||
"<ul>"
|
||||
"<li><b>$SOURCE_PATH</b> - Path to each source file (mandatory)</li>"
|
||||
"<li><b>$PROJECT_PATH</b> - Path to project file: \"" +
|
||||
QString::fromStdWString(m_settings->getProjectSettings()->getProjectFilePath().wstr()) + "\"</li>"
|
||||
"<li><b>$DB_PATH</b> - Path to database file: \"" +
|
||||
"<li><b>%{SOURCE_FILE_PATH}</b> - Path to each source file (mandatory)</li>"
|
||||
"<li><b>%{DATABASE_FILE_PATH}</b> - Path to database file: \"" +
|
||||
QString::fromStdWString(m_settings->getProjectSettings()->getTempDBFilePath().wstr()) + "\"</li>"
|
||||
"<li><b>$DB_VERSION</b> - Database version used by this Sourcetrail version: \"" +
|
||||
"<li><b>%{DATABASE_VERSION}</b> - Database version used by this Sourcetrail version: \"" +
|
||||
QString::number(SqliteIndexStorage::getStorageVersion()) + "\"</li>"
|
||||
"<li><b>%{PROJECT_FILE_PATH}</b> - Path to project file: \"" +
|
||||
QString::fromStdWString(m_settings->getProjectSettings()->getProjectFilePath().wstr()) + "\"</li>"
|
||||
"</ul>",
|
||||
layout, row
|
||||
);
|
||||
@@ -80,10 +80,10 @@ bool QtProjectWizzardContentCustomCommand::check()
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_customCommand->text().toStdWString().find(L"$SOURCE_PATH") == std::wstring::npos)
|
||||
if (m_customCommand->text().toStdWString().find(L"%{SOURCE_FILE_PATH}") == std::wstring::npos)
|
||||
{
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText("The variable $SOURCE_PATH is missing in the custom command.");
|
||||
msgBox.setText("The variable %{SOURCE_FILE_PATH} is missing in the custom command.");
|
||||
msgBox.exec();
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user