OSDN Git Service

Register `--prompt` as a global argument
authorDaniel Bachhuber <d@danielbachhuber.com>
Mon, 19 Aug 2013 22:52:45 +0000 (15:52 -0700)
committerDaniel Bachhuber <d@danielbachhuber.com>
Mon, 19 Aug 2013 22:52:45 +0000 (15:52 -0700)
Doing so is more correct, and avoids this warning:

```
Warning: unknown --prompt parameter
```

php/WP_CLI/Dispatcher/Subcommand.php
php/WP_CLI/Runner.php
php/config-spec.php

index 6834bb3..6b6ceb2 100644 (file)
@@ -11,6 +11,8 @@ class Subcommand extends CompositeCommand {
 
        private $when_invoked;
 
+       private $prompt = false;
+
        function __construct( $parent, $name, $docparser, $when_invoked ) {
                $this->when_invoked = $when_invoked;
 
@@ -28,6 +30,14 @@ class Subcommand extends CompositeCommand {
                return $this->alias;
        }
 
+       function set_prompt( $value ) {
+               $this->prompt = (bool)$value;
+       }
+
+       function get_prompt() {
+               return $this->prompt;
+       }
+
        function show_usage( $prefix = 'usage: ' ) {
                \WP_CLI::line( sprintf( "%s%s %s",
                        $prefix,
@@ -102,7 +112,7 @@ class Subcommand extends CompositeCommand {
 
        function invoke( $args, $assoc_args ) {
 
-               if ( ! empty( $assoc_args['prompt'] ) )
+               if ( $this->get_prompt() )
                        list( $args, $assoc_args ) = $this->prompt_args( $args, $assoc_args );
 
                $this->validate_args( $args, $assoc_args );
index 8e59316..d176181 100644 (file)
@@ -436,6 +436,15 @@ class Runner {
                        self::set_url_params( $url_parts );
                }
 
+               // Handle --prompt parameter
+               if ( $this->config['prompt'] ) {
+                       $r = $this->find_command_to_run( $this->arguments );
+                       if ( is_array( $r ) ) {
+                               list( $command ) = $r;
+                               $command->set_prompt( true );
+                       }
+               }
+
                $this->do_early_invoke( 'before_wp_load' );
 
                $this->check_wp_version();
index a2f1747..8504d78 100644 (file)
@@ -57,6 +57,13 @@ return array(
                'desc' => 'Show all PHP errors',
        ),
 
+       'prompt' => array(
+               'runtime' => '',
+               'file' => false,
+               'default' => false,
+               'desc' => 'Prompt the user to enter values for all command arguments',
+       ),
+
        'quiet' => array(
                'runtime' => '',
                'file' => '<bool>',