2014-12-22 13:10:52 -08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
final class PhabricatorSearchManagementInitWorkflow
|
|
|
|
extends PhabricatorSearchManagementWorkflow {
|
|
|
|
|
|
|
|
protected function didConstruct() {
|
|
|
|
$this
|
|
|
|
->setName('init')
|
2015-05-22 17:27:56 +10:00
|
|
|
->setSynopsis(pht('Initialize or repair an index.'))
|
2014-12-22 13:10:52 -08:00
|
|
|
->setExamples('**init**');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function execute(PhutilArgumentParser $args) {
|
|
|
|
$console = PhutilConsole::getConsole();
|
|
|
|
|
2015-12-21 10:25:28 -08:00
|
|
|
$engine = PhabricatorFulltextStorageEngine::loadEngine();
|
2014-12-22 13:10:52 -08:00
|
|
|
|
|
|
|
$work_done = false;
|
|
|
|
if (!$engine->indexExists()) {
|
|
|
|
$console->writeOut(
|
|
|
|
'%s',
|
|
|
|
pht('Index does not exist, creating...'));
|
|
|
|
$engine->initIndex();
|
|
|
|
$console->writeOut(
|
|
|
|
"%s\n",
|
|
|
|
pht('done.'));
|
|
|
|
$work_done = true;
|
|
|
|
} else if (!$engine->indexIsSane()) {
|
|
|
|
$console->writeOut(
|
|
|
|
'%s',
|
2015-05-22 17:27:56 +10:00
|
|
|
pht('Index exists but is incorrect, fixing...'));
|
2014-12-22 13:10:52 -08:00
|
|
|
$engine->initIndex();
|
|
|
|
$console->writeOut(
|
|
|
|
"%s\n",
|
|
|
|
pht('done.'));
|
|
|
|
$work_done = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($work_done) {
|
|
|
|
$console->writeOut(
|
|
|
|
"%s\n",
|
2015-05-22 17:27:56 +10:00
|
|
|
pht(
|
|
|
|
'Index maintenance complete. Run `%s` to reindex documents',
|
|
|
|
'./bin/search index'));
|
2014-12-22 13:10:52 -08:00
|
|
|
} else {
|
|
|
|
$console->writeOut(
|
|
|
|
"%s\n",
|
|
|
|
pht('Nothing to do.'));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|