require 'shellwords'

namespace :wordpress do

desc <<-DESC
  Install WordPress translations.
DESC
task :install_translations do
  next unless fetch(:wp_languages).any?
  languages = fetch(:wp_languages).shelljoin

  on roles(:app) do
    within release_path do
      execute :wp, "language core install #{languages} --skip-plugins=wordpress-seo"
      execute :wp, "language plugin install --all #{languages} --format=csv --skip-plugins=wordpress-seo"
      execute :wp, "language theme install --all #{languages} --format=csv --skip-plugins=wordpress-seo"
    end
  end
end

desc <<-DESC
  Update WordPress translations.
DESC
task :update_translations do
  next unless fetch(:wp_languages).any?

  on roles(:app) do
    within release_path do
      execute :wp, "language core update --quiet"
      execute :wp, "language plugin update --all --quiet"
      execute :wp, "language theme update --all --quiet"
    end
  end
end

desc <<-DESC
  Clear OPcache.
DESC
task :clear_opcache do
  next unless fetch(:wp_clear_opcache)

  on roles(:app) do
    within release_path do
      execute :wp, "plugin activate wp-cli-clear-opcache --quiet"
      execute :wp, "opcache clear"
    end
  end
end

after 'deploy:updated', 'wordpress:install_translations'
after 'deploy:updated', 'wordpress:update_translations'
after 'deploy:finishing', 'wordpress:clear_opcache'

end

namespace :load do

task :defaults do
  set :wp_languages, []
  set :wp_clear_opcache, false
end

end