OSDN Git Service

plugin: parse_name() only needs the first arg and only needs to return
authorscribu <mail@scribu.net>
Mon, 8 Jul 2013 18:07:10 +0000 (21:07 +0300)
committerscribu <mail@scribu.net>
Mon, 8 Jul 2013 18:14:53 +0000 (21:14 +0300)
the filename.

It accepted the whole arguments initially because it used to check if
the slug was missing. This is handled by the synopsis validator now,
beforehand.

php/commands/plugin.php

index e432b46..8c5895f 100644 (file)
@@ -36,7 +36,8 @@ class Plugin_Command extends \WP_CLI\CommandWithUpgrade {
        }
 
        protected function status_single( $args ) {
-               list( $file, $name ) = $this->parse_name( $args );
+               $name = $args[0];
+               $file = $this->parse_name( $name );
 
                $details = $this->get_details( $file );
 
@@ -77,7 +78,8 @@ class Plugin_Command extends \WP_CLI\CommandWithUpgrade {
         * @synopsis <plugin> [--network]
         */
        function activate( $args, $assoc_args = array() ) {
-               list( $file, $name ) = $this->parse_name( $args );
+               $name = $args[0];
+               $file = $this->parse_name( $name );
 
                $network_wide = isset( $assoc_args['network'] );
 
@@ -96,7 +98,8 @@ class Plugin_Command extends \WP_CLI\CommandWithUpgrade {
         * @synopsis <plugin> [--network]
         */
        function deactivate( $args, $assoc_args = array() ) {
-               list( $file, $name ) = $this->parse_name( $args );
+               $name = $args[0];
+               $file = $this->parse_name( $name );
 
                $network_wide = isset( $assoc_args['network'] );
 
@@ -115,7 +118,8 @@ class Plugin_Command extends \WP_CLI\CommandWithUpgrade {
         * @synopsis <plugin> [--network]
         */
        function toggle( $args, $assoc_args = array() ) {
-               list( $file, $name ) = $this->parse_name( $args );
+               $name = $args[0];
+               $file = $this->parse_name( $name );
 
                $network_wide = isset( $assoc_args['network'] );
 
@@ -135,7 +139,7 @@ class Plugin_Command extends \WP_CLI\CommandWithUpgrade {
                $path = untrailingslashit( WP_PLUGIN_DIR );
 
                if ( !empty( $args ) ) {
-                       list( $file, $name ) = $this->parse_name( $args );
+                       $file = $this->parse_name( $args[0] );
                        $path .= '/' . $file;
 
                        if ( isset( $assoc_args['dir'] ) )
@@ -190,7 +194,8 @@ class Plugin_Command extends \WP_CLI\CommandWithUpgrade {
         * @synopsis <plugin> [--version=<version>]
         */
        function update( $args, $assoc_args ) {
-               list( $basename ) = $this->parse_name( $args );
+               $name = $args[0];
+               $basename = $this->parse_name( $name );
 
                if ( isset( $assoc_args['version'] ) && 'dev' == $assoc_args['version'] ) {
                        $this->_delete( $basename, false );
@@ -254,7 +259,8 @@ class Plugin_Command extends \WP_CLI\CommandWithUpgrade {
         * @synopsis <plugin> [--no-delete]
         */
        function uninstall( $args, $assoc_args = array() ) {
-               list( $file, $name ) = $this->parse_name( $args );
+               $name = $args[0];
+               $file = $this->parse_name( $name );
 
                if ( is_plugin_active( $file ) ) {
                        WP_CLI::error( 'The plugin is active.' );
@@ -276,7 +282,8 @@ class Plugin_Command extends \WP_CLI\CommandWithUpgrade {
         * @synopsis <plugin>
         */
        function delete( $args, $assoc_args = array() ) {
-               list( $file, $name ) = $this->parse_name( $args );
+               $name = $args[0];
+               $file = $this->parse_name( $name );
 
                if ( $this->_delete( $file ) ) {
                        WP_CLI::success( sprintf( "Deleted '%s' plugin.", $name ) );
@@ -325,14 +332,12 @@ class Plugin_Command extends \WP_CLI\CommandWithUpgrade {
        }
 
        /**
-        * Parse the name of a plugin to a filename, check if it exists
+        * Parse the name of a plugin to a filename; check if it exists.
         *
-        * @param array $args
-        * @return array
+        * @param string name
+        * @return string
         */
-       private function parse_name( $args ) {
-               $name = $args[0];
-
+       private function parse_name( $name ) {
                $plugins = get_plugins( '/' . $name );
 
                if ( !empty( $plugins ) ) {
@@ -349,9 +354,12 @@ class Plugin_Command extends \WP_CLI\CommandWithUpgrade {
                        }
                }
 
-               return array( $file, $name );
+               return $file;
        }
 
+       /**
+        * Converts a plugin basename back into a friendly slug.
+        */
        private function get_name( $file ) {
                if ( false === strpos( $file, '/' ) )
                        $name = basename( $file, '.php' );