Page MenuHomePhabricator

D18690.diff
No OneTemporary

D18690.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -3950,6 +3950,7 @@
'PhabricatorSearchManagementIndexWorkflow' => 'applications/search/management/PhabricatorSearchManagementIndexWorkflow.php',
'PhabricatorSearchManagementInitWorkflow' => 'applications/search/management/PhabricatorSearchManagementInitWorkflow.php',
'PhabricatorSearchManagementNgramsWorkflow' => 'applications/search/management/PhabricatorSearchManagementNgramsWorkflow.php',
+ 'PhabricatorSearchManagementQueryWorkflow' => 'applications/search/management/PhabricatorSearchManagementQueryWorkflow.php',
'PhabricatorSearchManagementWorkflow' => 'applications/search/management/PhabricatorSearchManagementWorkflow.php',
'PhabricatorSearchNgrams' => 'applications/search/ngrams/PhabricatorSearchNgrams.php',
'PhabricatorSearchNgramsDestructionEngineExtension' => 'applications/search/engineextension/PhabricatorSearchNgramsDestructionEngineExtension.php',
@@ -9532,6 +9533,7 @@
'PhabricatorSearchManagementIndexWorkflow' => 'PhabricatorSearchManagementWorkflow',
'PhabricatorSearchManagementInitWorkflow' => 'PhabricatorSearchManagementWorkflow',
'PhabricatorSearchManagementNgramsWorkflow' => 'PhabricatorSearchManagementWorkflow',
+ 'PhabricatorSearchManagementQueryWorkflow' => 'PhabricatorSearchManagementWorkflow',
'PhabricatorSearchManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorSearchNgrams' => 'PhabricatorSearchDAO',
'PhabricatorSearchNgramsDestructionEngineExtension' => 'PhabricatorDestructionEngineExtension',
diff --git a/src/applications/search/management/PhabricatorSearchManagementQueryWorkflow.php b/src/applications/search/management/PhabricatorSearchManagementQueryWorkflow.php
new file mode 100644
--- /dev/null
+++ b/src/applications/search/management/PhabricatorSearchManagementQueryWorkflow.php
@@ -0,0 +1,55 @@
+<?php
+
+final class PhabricatorSearchManagementQueryWorkflow
+ extends PhabricatorSearchManagementWorkflow {
+
+ protected function didConstruct() {
+ $this
+ ->setName('query')
+ ->setSynopsis(
+ pht('Run a search query. Intended for debugging and development.'))
+ ->setArguments(
+ array(
+ array(
+ 'name' => 'query',
+ 'param' => 'query',
+ 'help' => pht('Raw query to execute.'),
+ ),
+ ));
+ }
+
+ public function execute(PhutilArgumentParser $args) {
+ $viewer = $this->getViewer();
+ $raw_query = $args->getArg('query');
+ if (!strlen($raw_query)) {
+ throw new PhutilArgumentUsageException(
+ pht('Specify a query with --query.'));
+ }
+
+ $engine = id(new PhabricatorSearchApplicationSearchEngine())
+ ->setViewer($viewer);
+
+ $saved = $engine->newSavedQuery();
+ $saved->setParameter('query', $raw_query);
+
+ $query = $engine->buildQueryFromSavedQuery($saved);
+ $pager = $engine->newPagerForSavedQuery($saved);
+
+ $results = $engine->executeQuery($query, $pager);
+ if ($results) {
+ foreach ($results as $result) {
+ echo tsprintf(
+ "%s\t%s\n",
+ $result->getPHID(),
+ $result->getName());
+ }
+ } else {
+ echo tsprintf(
+ "%s\n",
+ pht('No results.'));
+ }
+
+ return 0;
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Tue, Mar 18, 10:02 PM (3 d, 17 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7710434
Default Alt Text
D18690.diff (3 KB)

Event Timeline