Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/herald/management/HeraldRuleManagementWorkflow.php b/src/applications/herald/management/HeraldRuleManagementWorkflow.php
index 3380b21da7..42f986c68b 100644
--- a/src/applications/herald/management/HeraldRuleManagementWorkflow.php
+++ b/src/applications/herald/management/HeraldRuleManagementWorkflow.php
@@ -1,106 +1,106 @@
<?php
final class HeraldRuleManagementWorkflow
extends HeraldManagementWorkflow {
protected function didConstruct() {
$this
->setName('rule')
->setExamples('**rule** --rule __rule__ --disable')
->setSynopsis(
pht(
'Modify a rule, bypassing policies. This workflow can disable '.
'problematic personal rules.'))
->setArguments(
array(
array(
'name' => 'rule',
'param' => 'rule',
'help' => pht('Apply changes to this rule.'),
),
array(
'name' => 'disable',
'help' => pht('Disable the rule.'),
),
array(
'name' => 'enable',
'help' => pht('Enable the rule.'),
),
));
}
public function execute(PhutilArgumentParser $args) {
$viewer = $this->getViewer();
$rule_name = $args->getArg('rule');
- if (!strlen($rule_name)) {
+ if (!phutil_nonempty_string($rule_name)) {
throw new PhutilArgumentUsageException(
pht('Specify a rule to edit with "--rule <id|monogram>".'));
}
if (preg_match('/^H\d+/', $rule_name)) {
$rule_id = substr($rule_name, 1);
} else {
$rule_id = $rule_name;
}
$rule = id(new HeraldRuleQuery())
->setViewer($viewer)
->withIDs(array($rule_id))
->executeOne();
if (!$rule) {
throw new PhutilArgumentUsageException(
pht(
'Unable to load Herald rule with ID or monogram "%s".',
$rule_name));
}
$is_disable = $args->getArg('disable');
$is_enable = $args->getArg('enable');
$xactions = array();
if ($is_disable && $is_enable) {
throw new PhutilArgumentUsageException(
pht(
'Specify "--enable" or "--disable", but not both.'));
} else if ($is_disable || $is_enable) {
$xactions[] = $rule->getApplicationTransactionTemplate()
->setTransactionType(HeraldRuleDisableTransaction::TRANSACTIONTYPE)
->setNewValue($is_disable);
}
if (!$xactions) {
throw new PhutilArgumentUsageException(
pht(
'Use flags to specify at least one edit to apply to the '.
'rule (for example, use "--disable" to disable a rule).'));
}
$herald_phid = id(new PhabricatorHeraldApplication())->getPHID();
$editor = $rule->getApplicationTransactionEditor()
->setActor($viewer)
->setActingAsPHID($herald_phid)
->setContentSource($this->newContentSource())
->setContinueOnMissingFields(true)
->setContinueOnNoEffect(true);
echo tsprintf(
"%s\n",
pht(
'Applying changes to %s: %s...',
$rule->getMonogram(),
$rule->getName()));
$editor->applyTransactions($rule, $xactions);
echo tsprintf(
"%s\n",
pht('Done.'));
return 0;
}
}

File Metadata

Mime Type
text/x-diff
Expires
Mon, Apr 28, 6:07 PM (14 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
108095
Default Alt Text
(3 KB)

Event Timeline