From becdcf37421d9c9cd24e4c87ec4b2027867c722d Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Tue, 4 Oct 2011 21:32:46 -0300 Subject: [PATCH] Avoiding plugins to be loaded during rake --- lib/tasks/env.rake | 5 +++++ lib/tasks/plugins.rake | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 0 deletions(-) diff --git a/lib/tasks/env.rake b/lib/tasks/env.rake index 9ebdcb5..6715eb4 100644 --- a/lib/tasks/env.rake +++ b/lib/tasks/env.rake @@ -1 +1,6 @@ +enabled_plugins = Dir.glob(File.join(Rails.root, 'config', 'plugins', '*')).map {|path| File.basename(path)}.reject {|a| a == "README"} +sh './script/noosfero-plugins disableall' require File.join(File.dirname(__FILE__), '../../config/environment.rb') +enabled_plugins.each do |plugin| + sh "./script/noosfero-plugins enable #{plugin}" +end diff --git a/lib/tasks/plugins.rake b/lib/tasks/plugins.rake index 7e23021..29bb063 100644 --- a/lib/tasks/plugins.rake +++ b/lib/tasks/plugins.rake @@ -8,6 +8,39 @@ namespace :noosfero do ActiveRecord::Migrator.migrate(path, ENV["VERSION"] ? ENV["VERSION"].to_i : nil) end end + + task :save_enabled do + ENV['ENABLED_PLUGINS'] = Dir.glob(File.join(Rails.root, 'config', 'plugins', '*')).map {|path| File.basename(path)}.reject {|a| a == "README"}.join(',') + end + + task :temporary_config, :action, :needs => [:save_enabled] do |t, args| + sh "./script/noosfero-plugins #{args.action}all" + end + + task :restore_config do + sh "./script/noosfero-plugins disableall" + enabled_plugins = ENV['ENABLED_PLUGINS'].split(',') + enabled_plugins.each do |plugin| + sh "./script/noosfero-plugins enable #{plugin}" + end + end + + task :prepare_environment_disable do + Rake::Task['noosfero:plugins:temporary_config'].invoke('disable') + + Rake::Task['environment'].enhance do + Rake::Task['noosfero:plugins:restore_config'].invoke + end + end + + task :prepare_environment_enable do + Rake::Task['noosfero:plugins:temporary_config'].invoke('enable') + + Rake::Task['environment'].enhance do + Rake::Task['noosfero:plugins:restore_config'].invoke + end + end + task :abort_if_pending_migrations do if defined? ActiveRecord plugin_migration_dirs.each do |path| @@ -28,3 +61,4 @@ end task 'db:migrate' => 'noosfero:plugins:migrate' task 'db:abort_if_pending_migrations' => 'noosfero:plugins:abort_if_pending_migrations' +task 'environment' => 'noosfero:plugins:prepare_environment_disable' -- libgit2 0.21.2