[wp-hackers] Accessing wp classes/functions from command line for upgrades

Simon Prosser pross at pross.org.uk
Fri Jul 8 00:19:18 UTC 2011


Used this in a plugin:

$upgrader = new Plugin_Upgrader();
$options = array( 'package' => $url,
		'destination'		=> WP_PLUGIN_DIR .'/' . $folder,
		'clear_destination' => true,
		'clear_working'		=> false,
		'is_multi'			=> false,
		'hook_extra'		=> array()
	);

@$upgrader->run($options);

$url is the url on plugin download page, $folder is the actual plugin
folder name.

On 8 July 2011 00:25, Josh Eaton <jage32 at gmail.com> wrote:
> My host has file permission limitations that make plugin
> installs/upgrades and core upgrades very difficult. I have to do it
> all from ssh. I upgrade core using SVN, which works great for me, but
> since I maintain 6-7 sites at this same host, plugin upgrades become
> quite time-consuming. I end up having to do this:
>
> cd /home/public/blog/wp-content/plugins
> wget http://downloads.wordpress.org/plugin/google-analytics-for-wordpress.4.0.13.zip
> rm -rf google-analytics-for-wordpress
> unzip google-analytics-for-wordpress.4.0.13.zip
>
> For each plugin I have installed, and then repeat 6-7 times for each
> site. I planned to write a bash script to accomplish this via ssh, or
> a php script to run from the command line, but before I went through
> the effort, I briefly browsed through core to see if I could re-use
> any of the upgrade components  (e.g. WP_Upgrader class).
>
> As a quick test, I dropped the following script into my blog root, and
> ran it from ssh using 'php script.php'
>
> define('WP_USE_THEMES', false);
> require('./wp-blog-header.php');
>
> include ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
> $upgrader = new Plugin_Upgrader();
> $upgrader->upgrade('core-control');
>
> I get the following error: "Fatal error: Call to undefined function
> screen_icon() in
> /home/public/blog/wp-admin/includes/class-wp-upgrader.php on line
> 960". I am assuming that since I'm not using themes from the command
> line, that all of the UI code in this class may not work correctly.
>
> So my questions:
>
> 1. Is there an easy way for me to call this class or other core code
> to accomplish this? (maybe subclass the Plugin_Upgrader class and
> remove the UI code?)
> 2. Am I setting up the script correctly to run from the command line?
> 3. Is this a stupid idea, and I should just write my own php/ssh
> script to handle it?
>
> Thanks!
>
> Josh Eaton
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers
>



-- 
My Blog: http://www.pross.org.uk/
Plugins : http://www.pross.org.uk/plugins/
Themes: http://wordpress.org/extend/themes/profile/pross


More information about the wp-hackers mailing list