[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorFactManagementAnalyzeWorkflow 4 extends PhabricatorFactManagementWorkflow { 5 6 public function didConstruct() { 7 $this 8 ->setName('analyze') 9 ->setSynopsis(pht('Manually invoke fact analyzers.')) 10 ->setArguments( 11 array( 12 array( 13 'name' => 'iterator', 14 'param' => 'name', 15 'repeat' => true, 16 'help' => 'Process only iterator __name__.', 17 ), 18 array( 19 'name' => 'all', 20 'help' => 'Analyze from the beginning, ignoring cursors.', 21 ), 22 array( 23 'name' => 'skip-aggregates', 24 'help' => 'Skip analysis of aggreate facts.', 25 ), 26 )); 27 } 28 29 public function execute(PhutilArgumentParser $args) { 30 $console = PhutilConsole::getConsole(); 31 32 $daemon = new PhabricatorFactDaemon(array()); 33 $daemon->setVerbose(true); 34 $daemon->setEngines(PhabricatorFactEngine::loadAllEngines()); 35 36 $iterators = PhabricatorFactDaemon::getAllApplicationIterators(); 37 38 $selected = $args->getArg('iterator'); 39 if ($selected) { 40 $use = array(); 41 foreach ($selected as $iterator_name) { 42 if (isset($iterators[$iterator_name])) { 43 $use[$iterator_name] = $iterators[$iterator_name]; 44 } else { 45 $console->writeErr( 46 "%s\n", 47 pht("Iterator '%s' does not exist.", $iterator_name)); 48 } 49 } 50 $iterators = $use; 51 } 52 53 foreach ($iterators as $iterator_name => $iterator) { 54 if ($args->getArg('all')) { 55 $daemon->processIterator($iterator); 56 } else { 57 $daemon->processIteratorWithCursor($iterator_name, $iterator); 58 } 59 } 60 61 if (!$args->getArg('skip-aggregates')) { 62 $daemon->processAggregates(); 63 } 64 65 return 0; 66 } 67 68 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |