OSDN Git Service

runtime config can be set after file config
authorscribu <mail@scribu.net>
Sat, 23 Nov 2013 10:23:32 +0000 (12:23 +0200)
committerscribu <mail@scribu.net>
Sat, 23 Nov 2013 11:10:06 +0000 (13:10 +0200)
php/WP_CLI/Runner.php

index 76e716f..25f6c0b 100644 (file)
@@ -359,18 +359,25 @@ class Runner {
        private function init_config() {
                $configurator = \WP_CLI::get_configurator();
 
-               list( $args, $assoc_args, $runtime_config ) = $configurator->parse_args(
-                       array_slice( $GLOBALS['argv'], 1 ) );
+               // File config
+               {
+                       $this->global_config_path = self::get_global_config_path();
+                       $this->project_config_path = self::get_project_config_path();
 
-               list( $this->arguments, $this->assoc_args ) = self::back_compat_conversions(
-                       $args, $assoc_args );
+                       $configurator->merge_yml( $this->global_config_path );
+                       $configurator->merge_yml( $this->project_config_path );
+               }
+
+               // Runtime config and args
+               {
+                       list( $args, $assoc_args, $runtime_config ) = $configurator->parse_args(
+                               array_slice( $GLOBALS['argv'], 1 ) );
 
-               $this->global_config_path = self::get_global_config_path();
-               $this->project_config_path = self::get_project_config_path();
+                       list( $this->arguments, $this->assoc_args ) = self::back_compat_conversions(
+                               $args, $assoc_args );
 
-               $configurator->merge_yml( $this->global_config_path );
-               $configurator->merge_yml( $this->project_config_path );
-               $configurator->merge_array( $runtime_config );
+                       $configurator->merge_array( $runtime_config );
+               }
 
                $this->config = $configurator->to_array();