diff --git a/src/Provider_Command.php b/src/Provider_Command.php index 2a56151..8b967b2 100644 --- a/src/Provider_Command.php +++ b/src/Provider_Command.php @@ -154,15 +154,24 @@ public function match_provider( $args, $assoc_args ) { $response_size_limit = Utils\get_flag_value( $assoc_args, 'limit-response-size' ); $link_type = Utils\get_flag_value( $assoc_args, 'link-type' ); - if ( ! $discover && ( null !== $response_size_limit || null !== $link_type ) ) { - if ( null !== $response_size_limit && null !== $link_type ) { - $msg = "The 'limit-response-size' and 'link-type' options can only be used with discovery."; - } elseif ( null !== $response_size_limit ) { - $msg = "The 'limit-response-size' option can only be used with discovery."; - } else { - $msg = "The 'link-type' option can only be used with discovery."; + if ( ! $discover ) { + $discovery_options = []; + if ( null !== $response_size_limit ) { + $discovery_options[] = "'limit-response-size'"; + } + if ( null !== $link_type ) { + $discovery_options[] = "'link-type'"; + } + + if ( ! empty( $discovery_options ) ) { + WP_CLI::error( + sprintf( + 'The %s %s can only be used with discovery.', + implode( ' and ', $discovery_options ), + count( $discovery_options ) > 1 ? 'options' : 'option' + ) + ); } - WP_CLI::error( $msg ); } if ( $response_size_limit ) {