Skip to content

Commit de911ad

Browse files
Copilotswissspidy
andcommitted
Fix: Only output formatted results when --format flag is explicitly provided
The previous implementation always outputted formatted tables, breaking existing tests. Now format output is only shown when user explicitly provides --format flag, preserving backward compatibility. Co-authored-by: swissspidy <841956+swissspidy@users.noreply.github.com>
1 parent f6f267d commit de911ad

File tree

1 file changed

+29
-13
lines changed

1 file changed

+29
-13
lines changed

src/Core_Language_Command.php

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -219,13 +219,13 @@ public function install( $args, $assoc_args ) {
219219
WP_CLI::error( 'Only a single language can be active.' );
220220
}
221221

222-
if ( empty( $assoc_args['format'] ) ) {
223-
$assoc_args['format'] = 'table';
224-
}
222+
$has_format_flag = isset( $assoc_args['format'] );
225223

226-
if ( in_array( $assoc_args['format'], array( 'json', 'csv' ), true ) ) {
227-
$logger = new \WP_CLI\Loggers\Quiet();
228-
\WP_CLI::set_logger( $logger );
224+
if ( $has_format_flag ) {
225+
if ( in_array( $assoc_args['format'], array( 'json', 'csv' ), true ) ) {
226+
$logger = new \WP_CLI\Loggers\Quiet();
227+
\WP_CLI::set_logger( $logger );
228+
}
229229
}
230230

231231
$available = $this->get_installed_languages();
@@ -242,7 +242,9 @@ public function install( $args, $assoc_args ) {
242242

243243
if ( in_array( $language_code, $available, true ) ) {
244244
\WP_CLI::log( "Language '{$language_code}' already installed." );
245-
$result['status'] = 'already installed';
245+
if ( $has_format_flag ) {
246+
$result['status'] = 'already installed';
247+
}
246248
++$skips;
247249
} else {
248250
$response = $this->download_language_pack( $language_code );
@@ -253,15 +255,21 @@ public function install( $args, $assoc_args ) {
253255

254256
// Skip if translation is not yet available.
255257
if ( 'not_found' === $response->get_error_code() ) {
256-
$result['status'] = 'not available';
258+
if ( $has_format_flag ) {
259+
$result['status'] = 'not available';
260+
}
257261
++$skips;
258262
} else {
259-
$result['status'] = 'not installed';
263+
if ( $has_format_flag ) {
264+
$result['status'] = 'not installed';
265+
}
260266
++$errors;
261267
}
262268
} else {
263269
\WP_CLI::log( "Language '{$language_code}' installed." );
264-
$result['status'] = 'installed';
270+
if ( $has_format_flag ) {
271+
$result['status'] = 'installed';
272+
}
265273
++$successes;
266274
}
267275
}
@@ -270,11 +278,19 @@ public function install( $args, $assoc_args ) {
270278
$this->activate_language( $language_code );
271279
}
272280

273-
$results[] = (object) $result;
281+
if ( $has_format_flag ) {
282+
$results[] = (object) $result;
283+
}
274284
}
275285

276-
if ( 'summary' !== $assoc_args['format'] ) {
277-
\WP_CLI\Utils\format_items( $assoc_args['format'], $results, array( 'locale', 'status' ) );
286+
if ( $has_format_flag ) {
287+
if ( empty( $assoc_args['format'] ) ) {
288+
$assoc_args['format'] = 'table';
289+
}
290+
291+
if ( 'summary' !== $assoc_args['format'] ) {
292+
\WP_CLI\Utils\format_items( $assoc_args['format'], $results, array( 'locale', 'status' ) );
293+
}
278294
}
279295

280296
\WP_CLI\Utils\report_batch_operation_results( 'language', 'install', $count, $successes, $errors, $skips );

0 commit comments

Comments
 (0)