Repository navigation
Expand file tree
/
Copy pathrules.drush.inc
More file actions
134 lines (122 loc) · 3.72 KB
/
Copy pathrules.drush.inc
File metadata and controls
134 lines (122 loc) · 3.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?php
/**
* @file
* Rules module drush integration.
*/
/**
* Implements hook_drush_command().
*
* @return
* An associative array describing your command(s).
*
* @see drush_parse_command()
*/
function rules_drush_command() {
$items = array();
$items['rules-list'] = array(
'description' => "List all the active and inactive rules for your site.",
'drupal dependencies' => array('rules'),
'aliases' => array('rules'),
);
$items['rules-enable'] = array(
'description' => "Enable a rule on your site.",
'arguments' => array(
'rule' => 'Rule name to enable.',
),
'drupal dependencies' => array('rules'),
'aliases' => array('re'),
);
$items['rules-disable'] = array(
'description' => "Disable a rule on your site.",
'arguments' => array(
'rule' => 'Rule name to export.',
),
'drupal dependencies' => array('rules'),
'aliases' => array('rd'),
);
return $items;
}
/**
* Implements hook_drush_help().
*/
function rules_drush_help($section) {
switch ($section) {
case 'drush:rules':
return dt("List all the rules on your site.");
case 'drush:rules-enable':
return dt("Enable/activate a rule on your site.");
case 'drush:rules-disable':
return dt("Disable/deactivate a rule on your site.");
}
}
/**
* Get a list of all rules.
*/
function drush_rules_list() {
$rules = rules_config_load_multiple(FALSE);
$rows = array(array(dt('Rule'), dt('Label'), dt('Event'), dt('Active'), dt('Status')));
foreach ($rules as $rule) {
if (!empty($rule->name) && !empty($rule->label)) {
$events = array();
$event_info = rules_fetch_data('event_info');
if ($rule instanceof RulesTriggerableInterface) {
foreach ($rule->events() as $event_name) {
$event_info += array($event_name => array('label' => dt('Unknown event "!event_name"', array('!event_name' => $event_name))));
$events[] = check_plain($event_info[$event_name]['label']);
}
}
$rows[] = array(
$rule->name,
$rule->label,
implode(', ', $events),
$rule->active ? dt('Enabled') : dt('Disabled'),
$rule->status ? theme('entity_status', array('status' => $rule->status, 'html' => FALSE)) : '',
);
}
}
drush_print_table($rows, TRUE);
}
/**
* Enable a rule on the site.
*/
function drush_rules_enable() {
$args = func_get_args();
$rule_name = (!empty($args) && is_array($args)) ? array_shift($args) : '';
if (empty($rule_name)) {
return drush_set_error('', 'No rule name given.');
}
$rule = rules_config_load($rule_name);
if (empty($rule)) {
return drush_set_error('', dt('Could not load rule named "!rule-name".', array('!rule-name' => $rule_name)));
}
if (empty($rule->active)) {
$rule->active = TRUE;
$rule->save();
drush_log(dt('The rule "!name" has been enabled.', array('!name' => $rule_name)), 'success');
}
else {
drush_log(dt('The rule "!name" is already enabled.', array('!name' => $rule_name)), 'warning');
}
}
/**
* Disable a rule on the site.
*/
function drush_rules_disable() {
$args = func_get_args();
$rule_name = (!empty($args) && is_array($args)) ? array_shift($args) : '';
if (empty($rule_name)) {
return drush_set_error('', 'No rule name given.');
}
$rule = rules_config_load($rule_name);
if (empty($rule)) {
return drush_set_error('', dt('Could not load rule named "!rule-name".', array('!rule-name' => $rule_name)));
}
if (!empty($rule->active)) {
$rule->active = FALSE;
$rule->save();
drush_log(dt('The rule "!name" has been disabled.', array('!name' => $rule_name)), 'success');
}
else {
drush_log(dt('The rule "!name" is already disabled.', array('!name' => $rule_name)), 'warning');
}
}