class Shellpress::Plugin

Constants

ORDER

Public Instance Methods

activate(name) click to toggle source
# File lib/shellpress/plugin.rb, line 72
def activate(name)
  network = options[:network_wide]
  base = "wp-content/plugins"
  php = "php -r \"include 'wp-load.php';"
  php << "require_once(ABSPATH . 'wp-admin/includes/plugin.php');"
  if File.exists?("#{base}/#{name}/#{name}.php")
    if network
      php << "activate_plugin('#{name}/#{name}.php', '', true);\""
    else
      php << "activate_plugin('#{name}/#{name}.php');\""
    end
  elsif File.exists?("#{base}/#{name}.php")
    if network
      php << "activate_plugin('#{name}.php', '', true);\""
    else
      php << "activate_plugin('#{name}.php');\""
    end
  else
    abort "Error: Invalid plugin #{name}"
  end
  run php
end
deactivate(name) click to toggle source
# File lib/shellpress/plugin.rb, line 121
def deactivate(name)
  base = "wp-content/plugins"
  php = "php -r \"include 'wp-load.php';"
  php << "require_once(ABSPATH . 'wp-admin/includes/plugin.php');"
  php << "require_once(ABSPATH . 'wp-admin/includes/file.php');"
  if File.exists?("#{base}/#{name}/#{name}.php")
    php << "deactivate_plugins(array('#{name}/#{name}.php'));\""
  elsif File.exists?("#{base}/#{name}.php")
    php << "deactivate_plugins(array('#{name}.php'));\""
  else
    abort "Error: Invalid plugin #{name}"
  end
  run php
end
delete(name) click to toggle source
# File lib/shellpress/plugin.rb, line 100
def delete(name)
  base = "wp-content/plugins"
  php = "php -r \"include 'wp-load.php';"
  php << "require_once(ABSPATH . 'wp-admin/includes/plugin.php');"
  php << "require_once(ABSPATH . 'wp-admin/includes/file.php');"
  if File.exists?("#{base}/#{name}/#{name}.php")
    php << "delete_plugins(array('#{name}/#{name}.php'));\""
  elsif File.exists?("#{base}/#{name}.php")
    php << "delete_plugins(array('#{name}.php'));\""
  else
    abort "Error: Invalid plugin #{name}"
  end
  run php
end
download(url) click to toggle source
# File lib/shellpress/plugin.rb, line 56
def download(url)
  zip = File.basename(URI.parse(url).path)
  plugin = zip.split(".").first
  run "wget #{url}", :verbose => false
  run "unzip #{zip}", :verbose => false
  remove_file "#{zip}", :verbose => false
  run "mv #{plugin} wp-content/plugins/"
end
install(plugin) click to toggle source
# File lib/shellpress/plugin.rb, line 15
def install(plugin)
  version = options[:version]

  if plugin =~ URI::regexp
    invoke :download, [plugin]
    filename = File.basename(URI.parse(plugin).path)
    name = filename.split(".").first
    invoke :activate, [name]
  else
    if version
      begin
        response = open("http://svn.wp-plugins.org/#{plugin}/tags/#{version}/readme.txt")
        url = "http://downloads.wordpress.org/plugin/#{plugin}.#{version}.zip"
      rescue
        abort "Error: Invalid plugin #{plugin}"
      end
    else
      begin
        response = open("http://svn.wp-plugins.org/#{plugin}/trunk/readme.txt").read
        stable = response.match(/Stable tag: (.*)\n/)[1]
        if stable == "trunk"
          url = "http://downloads.wordpress.org/plugin/#{plugin}.zip"
        elsif stable =~ /[\d\.]+/
          url = "http://downloads.wordpress.org/plugin/#{plugin}.#{stable}.zip"
        else
          abort "Error: Invalid plugin #{plugin} or invalid readme.txt"
        end
      rescue
        abort "Error: Invalid plugin #{plugin}"
      end
    end
    invoke :download, [url]
    invoke :activate, [plugin]
  end
end