Skip to content

Commit 9e4c033

Browse files
#8: Insure that cache-get and config-get help only shows output formats that are usable by these commands.
1 parent 9f93502 commit 9e4c033

File tree

4 files changed

+17
-10
lines changed

4 files changed

+17
-10
lines changed

commands/core/cache.drush.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ function cache_drush_command() {
2323
'outputformat' => array(
2424
'default' => 'print-r',
2525
'pipe-format' => 'var_export',
26+
'output-data-type' => TRUE,
2627
),
2728
'aliases' => array('cg'),
2829
);

commands/core/config.drush.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ function config_drush_command() {
4646
'outputformat' => array(
4747
'default' => 'yaml',
4848
'pipe-format' => 'var_export',
49+
'output-data-type' => TRUE,
4950
),
5051
'aliases' => array('cget'),
5152
'core' => array('8+'),

commands/core/outputformat.drush.inc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ function outputformat_drush_help_alter(&$command) {
275275
// If the command does not define specific field labels,
276276
// then hide the help for --fields unless the command
277277
// works with output format engines that format tables.
278-
if (isset($outputformat['require-engine-capability'])) {
278+
if (isset($outputformat['require-engine-capability']) && is_array($outputformat['require-engine-capability'])) {
279279
if (!in_array('format-table', $outputformat['require-engine-capability'])) {
280280
unset($command['options']['fields']);
281281
}
@@ -355,10 +355,10 @@ class drush_outputformat {
355355
return ($this->formatter_type() == 'list') && ($this->sub_engine->supports_single_only());
356356
}
357357
function data_type($metadata) {
358-
if (isset($metadata['metameta']['require-engine-capability'])) {
358+
if (isset($metadata['metameta']['require-engine-capability']) && is_array($metadata['metameta']['require-engine-capability'])) {
359359
return $metadata['metameta']['require-engine-capability'][0];
360360
}
361-
if (isset($metadata['require-engine-capability'])) {
361+
if (isset($metadata['require-engine-capability']) && is_array($metadata['require-engine-capability'])) {
362362
return $metadata['require-engine-capability'][0];
363363
}
364364
return 'unspecified';

includes/engines.inc

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ function drush_merge_engine_data(&$command) {
162162
unset($config[$engine_option_alias_name]);
163163
}
164164
}
165-
// Make sure that 'require-engine-capability' is always an array.
166-
if (isset($config['require-engine-capability']) && !is_array($config['require-engine-capability'])) {
165+
// Convert single string values of 'require-engine-capability' to an array.
166+
if (isset($config['require-engine-capability']) && is_string($config['require-engine-capability'])) {
167167
$config['require-engine-capability'] = array($config['require-engine-capability']);
168168
}
169169
$command['engines'][$engine_type] = $config;
@@ -239,10 +239,15 @@ function drush_merge_engine_data(&$command) {
239239
// it is assumed that the engine can satisfy all requirements.
240240
if (array_key_exists('engine-capabilities', $data)) {
241241
$engine_is_usable = FALSE;
242-
foreach ($config['require-engine-capability'] as $required) {
243-
// We need an engine that provides any one of the requirements.
244-
if (in_array($required, $data['engine-capabilities'])) {
245-
$engine_is_usable = TRUE;
242+
// If 'require-engine-capability' is TRUE instead of an array,
243+
// then only engines that are universal (do not declare any
244+
// particular capabilities) are usable.
245+
if (is_array($config['require-engine-capability'])) {
246+
foreach ($config['require-engine-capability'] as $required) {
247+
// We need an engine that provides any one of the requirements.
248+
if (in_array($required, $data['engine-capabilities'])) {
249+
$engine_is_usable = TRUE;
250+
}
246251
}
247252
}
248253
}
@@ -254,7 +259,7 @@ function drush_merge_engine_data(&$command) {
254259
$engine_data['options'][$option]['description'] = array_key_exists('description', $data) ? $data['description'] : NULL;
255260
if ($combine_help) {
256261
$engine_data['options'][$option]['hidden'] = TRUE;
257-
if (drush_get_context('DRUSH_VERBOSE') || !isset($data['verbose-only'])) {
262+
if (drush_get_context('DRUSH_VERBOSE') || ($default == $engine) || !isset($data['verbose-only'])) {
258263
$combine_help_data[$engine] = $engine . ': ' . $data['description'];
259264
}
260265
}

0 commit comments

Comments
 (0)