OSDN Git Service

implement `wp cli info --format=json`
authorscribu <mail@scribu.net>
Thu, 21 Nov 2013 09:12:55 +0000 (11:12 +0200)
committerscribu <mail@scribu.net>
Thu, 21 Nov 2013 09:12:55 +0000 (11:12 +0200)
php/commands/cli.php

index 3749b04..36d9055 100644 (file)
@@ -37,19 +37,33 @@ class CLI_Command extends WP_CLI_Command {
 
        /**
         * Print various data about the CLI environment.
+        *
+        * @synopsis [--format=<format>]
         */
-       function info() {
+       function info( $_, $assoc_args ) {
                $php_bin = defined( 'PHP_BINARY' ) ? PHP_BINARY : getenv( 'WP_CLI_PHP_USED' );
 
                $runner = WP_CLI::get_runner();
 
-               WP_CLI::line( "PHP binary:\t" . $php_bin );
-               WP_CLI::line( "PHP version:\t" . PHP_VERSION );
-               WP_CLI::line( "php.ini used:\t" . get_cfg_var( 'cfg_file_path' ) );
-               WP_CLI::line( "WP-CLI root:\t" . WP_CLI_ROOT );
-               WP_CLI::line( "WP-CLI global config:\t" . $runner->global_config_path );
-               WP_CLI::line( "WP-CLI project config:\t" . $runner->project_config_path );
-               WP_CLI::line( "WP-CLI version:\t" . WP_CLI_VERSION );
+               if ( isset( $assoc_args['format'] ) && 'json' === $assoc_args['format'] ) {
+                       $info = array(
+                               'php_binary_path' => $php_bin,
+                               'global_config_path' => $runner->global_config_path,
+                               'project_config_path' => $runner->project_config_path,
+                               'wp_cli_dir_path' => WP_CLI_ROOT,
+                               'wp_cli_version' => WP_CLI_VERSION,
+                       );
+
+                       WP_CLI::line( json_encode( $info ) );
+               } else {
+                       WP_CLI::line( "PHP binary:\t" . $php_bin );
+                       WP_CLI::line( "PHP version:\t" . PHP_VERSION );
+                       WP_CLI::line( "php.ini used:\t" . get_cfg_var( 'cfg_file_path' ) );
+                       WP_CLI::line( "WP-CLI root dir:\t" . WP_CLI_ROOT );
+                       WP_CLI::line( "WP-CLI global config:\t" . $runner->global_config_path );
+                       WP_CLI::line( "WP-CLI project config:\t" . $runner->project_config_path );
+                       WP_CLI::line( "WP-CLI version:\t" . WP_CLI_VERSION );
+               }
        }
 
        /**