You are here

public function RulesCommands::revert in Rules 8.3

Reverts a rule to its original state on your site.

@command rules:revert @aliases rrev,rules-revert

@usage drush rules:revert test_rule Restores the module-provided Rule with machine id 'test_rule' to its original state. If the Rule hasn't been customized on the site, this has no effect.

Parameters

string $rule: Rule name (machine id) to revert.

Throws

\Exception

File

src/Commands/RulesCommands.php, line 284

Class

RulesCommands
Drush 9+ commands for the Rules module.

Namespace

Drupal\rules\Commands

Code

public function revert($rule) {

  // @todo Implement this function.
  // The $rule argument could refer to a Reaction Rule or a Rules Component.
  $config = $this->configStorage
    ->read('rules.reaction.' . $rule);
  if (empty($config)) {
    $config = $this->configStorage
      ->read('rules.component.' . $rule);
    if (empty($config)) {
      throw new \Exception(dt('Could not find a Reaction Rule or a Rules Component named @name', [
        '@name' => $rule,
      ]));
    }
  }
  if (($rule->status & ENTITY_OVERRIDDEN) == ENTITY_OVERRIDDEN) {
    if ($this
      ->confirm(dt('Are you sure you want to revert the rule named "@name"? This action cannot be undone.', [
      '@name' => $rule,
    ]))) {

      // $config->delete();
      $this->logger
        ->success(dt('The rule @name has been reverted to its default state.', [
        '@name' => $rule,
      ]));
    }
  }
  else {
    $this->logger
      ->warning(dt('The rule "@name" has not been overridden and can\'t be reverted.', [
      '@name' => $rule,
    ]));
  }
}