X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/88e5a849eea66777cff691bd8c1547afeaf227b0..5fbc96e38dd8dfcb3eb1ed0a5f4319ccaf244d6d:/cookbooks/wordpress/libraries/wordpress.rb?ds=sidebyside diff --git a/cookbooks/wordpress/libraries/wordpress.rb b/cookbooks/wordpress/libraries/wordpress.rb index e83ba0417..56df13936 100644 --- a/cookbooks/wordpress/libraries/wordpress.rb +++ b/cookbooks/wordpress/libraries/wordpress.rb @@ -1,14 +1,14 @@ -require "chef/mixin/command" +require "chef/mixin/shell_out" +require "addressable" require "httpclient" -require "php_serialize" +require "json" class Chef module Wordpress - extend Chef::Mixin::Command + extend Chef::Mixin::ShellOut @api_responses = {} - @svn_responses = {} class << self def current_version @@ -16,32 +16,23 @@ class Chef end def current_plugin_version(name) - if svn_cat("http://plugins.svn.wordpress.org/#{name}/trunk/readme.txt") =~ /Stable tag:\s*([^\s\r]*)[\s\r]*/ - Regexp.last_match[1] - else - "trunk" - end + plugin_information(name)["version"] end private def core_version_check - api_get("http://api.wordpress.org/core/version-check/1.6") + api_get("https://api.wordpress.org/core/version-check/1.7") end - def api_get(url) - @api_responses[url] ||= ::PHP.unserialize(::HTTPClient.new.get_content(url)) + def plugin_information(name) + api_get("https://api.wordpress.org/plugins/info/1.2/?action=plugin_information&request[slug]=#{name}") end - def svn_cat(url) - unless @svn_responses[url] - status, stdout, stderr = output_of_command("svn cat #{url}", {}) - handle_command_failures(status, "STDOUT: #{stdout}\nSTDERR: #{stderr}", :output_on_failure => true) - - @svn_responses[url] = stdout.force_encoding("UTF-8") - end - - @svn_responses[url] + def api_get(url) + http_client = ::HTTPClient.new + http_client.ssl_config.set_trust_ca("/etc/ssl/certs/ca-certificates.crt") + @api_responses[url] ||= ::JSON.parse(http_client.get_content(url)) end end end