mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-24 15:52:41 +01:00
62 lines
1.5 KiB
PHP
62 lines
1.5 KiB
PHP
|
<?php
|
||
|
|
||
|
final class PhabricatorFeedManagementRepublishWorkflow
|
||
|
extends PhabricatorFeedManagementWorkflow {
|
||
|
|
||
|
protected function didConstruct() {
|
||
|
$this
|
||
|
->setName('republish')
|
||
|
->setExamples('**republish** __story_key__')
|
||
|
->setSynopsis(
|
||
|
pht(
|
||
|
'Republish a feed event to all consumers.'))
|
||
|
->setArguments(
|
||
|
array(
|
||
|
array(
|
||
|
'name' => 'key',
|
||
|
'wildcard' => true,
|
||
|
),
|
||
|
));
|
||
|
}
|
||
|
|
||
|
public function execute(PhutilArgumentParser $args) {
|
||
|
$console = PhutilConsole::getConsole();
|
||
|
$viewer = PhabricatorUser::getOmnipotentUser();
|
||
|
|
||
|
$key = $args->getArg('key');
|
||
|
if (count($key) < 1) {
|
||
|
throw new PhutilArgumentUsageException(
|
||
|
pht("Specify a story key to republish."));
|
||
|
} else if (count($key) > 1) {
|
||
|
throw new PhutilArgumentUsageException(
|
||
|
pht("Specify exactly one story key to republish."));
|
||
|
}
|
||
|
$key = head($key);
|
||
|
|
||
|
$story = id(new PhabricatorFeedQuery())
|
||
|
->setViewer($viewer)
|
||
|
->withChronologicalKeys(array($key))
|
||
|
->executeOne();
|
||
|
|
||
|
if (!$story) {
|
||
|
throw new PhutilArgumentUsageException(
|
||
|
pht('No story exists with key "%s"!', $key));
|
||
|
}
|
||
|
|
||
|
$console->writeOut("%s\n", pht("Republishing story..."));
|
||
|
|
||
|
PhabricatorWorker::setRunAllTasksInProcess(true);
|
||
|
|
||
|
PhabricatorWorker::scheduleTask(
|
||
|
'FeedPublisherWorker',
|
||
|
array(
|
||
|
'key' => $key,
|
||
|
));
|
||
|
|
||
|
$console->writeOut("%s\n", pht("Done."));
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
}
|