diff --git a/commands/core/outputformat/list.inc b/commands/core/outputformat/list.inc index 7850574..9c7d8be 100644 --- a/commands/core/outputformat/list.inc +++ b/commands/core/outputformat/list.inc @@ -89,12 +89,6 @@ class drush_outputformat_list extends drush_outputformat { else { $metameta = $metadata['metameta']; } - if ($selected_output_fields) { - $metameta['list-field-selection-control'] = -1; - } - elseif ($field_selection_control) { - $metameta['list-field-selection-control'] = $field_selection_control - 1; - } $list_separator_key = 'list-separator'; if ($this->sub_engine->is_list()) { $list_separator_key = 'line-separator'; @@ -131,6 +125,12 @@ class drush_outputformat_list extends drush_outputformat { } } $metameta['label'] = $label; + if ($selected_output_fields) { + $metameta['list-field-selection-control'] = -1; + } + elseif ($field_selection_control) { + $metameta['list-field-selection-control'] = $field_selection_control - 1; + } $formatted_item = $this->sub_engine->format($data, $metameta); if ($formatted_item === FALSE) { return FALSE; diff --git a/commands/pm/pm.drush.inc b/commands/pm/pm.drush.inc index 2413ae6..7672a55 100644 --- a/commands/pm/pm.drush.inc +++ b/commands/pm/pm.drush.inc @@ -211,6 +211,7 @@ function pm_drush_command() { 'pipe-format' => 'list', 'field-labels' => array('name' => 'Short Name', 'label' => 'Name', 'existing_version' => 'Installed Version', 'status' => 'Status', 'status_msg' => 'Message', 'candidate_version' => 'Proposed version'), 'fields-default' => array('label', 'existing_version', 'candidate_version', 'status_msg' ), + 'fields-pipe' => array('name', 'existing_version', 'candidate_version', 'status_msg' ), 'output-data-type' => 'format-table', ), 'aliases' => array('ups'), diff --git a/includes/command.inc b/includes/command.inc index cffda30..33d77ed 100644 --- a/includes/command.inc +++ b/includes/command.inc @@ -463,6 +463,7 @@ function drush_handle_command_output($command, $structured_output) { $metadata = array(); $metadata['strict'] = drush_get_option('strict', FALSE); if (isset($formatter->engine_config['options'])) { + $machine_parsable = $formatter->engine_config['engine-info']['machine-parsable']; if (drush_get_option('full', FALSE)) { if (isset($formatter->engine_config['fields-full'])) { $formatter->engine_config['fields-default'] = $formatter->engine_config['fields-full']; @@ -471,7 +472,7 @@ function drush_handle_command_output($command, $structured_output) { $formatter->engine_config['fields-default'] = array_keys($formatter->engine_config['field-labels']); } } - elseif (drush_get_context('DRUSH_PIPE') && isset($formatter->engine_config['fields-pipe'])) { + elseif ((drush_get_context('DRUSH_PIPE') || $machine_parsable) && isset($formatter->engine_config['fields-pipe'])) { $formatter->engine_config['fields-default'] = $formatter->engine_config['fields-pipe']; } foreach ($formatter->engine_config['options'] as $option => $option_info) { diff --git a/tests/outputFormatTest.php b/tests/outputFormatTest.php index 60a5324..c37d08a 100644 --- a/tests/outputFormatTest.php +++ b/tests/outputFormatTest.php @@ -152,7 +152,7 @@ drush-alias-files=/etc/drush/dev.alias.drushrc.php', 'args' => array(), 'format' => 'csv-list', 'output-filter' => array('/[0-9]+\.[0-9]+/' => '0.0', '/Update available/' => 'Up to date'), - 'expected' => "Drupal,0.0,0.0,Up to date", + 'expected' => "drupal,0.0,0.0,Up to date", ), /* pm-updatestatus --format=ini does not work @@ -173,7 +173,7 @@ drush-alias-files=/etc/drush/dev.alias.drushrc.php', 'format' => 'ini-sections', 'output-filter' => array('/[0-9]+\.[0-9]+/' => '0.0', '/Update available/' => 'Up to date'), 'expected' => "[drupal] -name=Drupal +short_name=drupal installed_version=0.0 proposed_version=0.0 message=Up to date",