From 2249be1c5288373774efd17543ae2886d7bc12fb Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Sat, 19 Jan 2013 17:31:46 +0000 Subject: [PATCH] Fixing Spaminator to work in production. --- plugins/spaminator/lib/spaminator_plugin/scan.rb | 18 ++++++++++++++++++ plugins/spaminator/lib/spaminator_plugin/scan_job.rb | 17 +---------------- plugins/spaminator/script/scan | 4 ++++ 3 files changed, 23 insertions(+), 16 deletions(-) create mode 100644 plugins/spaminator/lib/spaminator_plugin/scan.rb create mode 100755 plugins/spaminator/script/scan diff --git a/plugins/spaminator/lib/spaminator_plugin/scan.rb b/plugins/spaminator/lib/spaminator_plugin/scan.rb new file mode 100644 index 0000000..37cdfc4 --- /dev/null +++ b/plugins/spaminator/lib/spaminator_plugin/scan.rb @@ -0,0 +1,18 @@ +class SpaminatorPlugin::Scan + def self.run(environment_id) + environment = Environment.find(environment_id) + settings = Noosfero::Plugin::Settings.new(environment, SpaminatorPlugin) + settings.scanning = true + settings.save! + + begin + SpaminatorPlugin::Spaminator.run(environment) + rescue Exception => exception + SpaminatorPlugin::Spaminator.log("Spaminator failed with the following error: \n ==> #{exception}\n#{exception.backtrace.join("\n")}") + end + + settings.scanning = false + SpaminatorPlugin.schedule_scan(environment) if settings.deployed + settings.save! + end +end diff --git a/plugins/spaminator/lib/spaminator_plugin/scan_job.rb b/plugins/spaminator/lib/spaminator_plugin/scan_job.rb index ea5e861..c31430e 100644 --- a/plugins/spaminator/lib/spaminator_plugin/scan_job.rb +++ b/plugins/spaminator/lib/spaminator_plugin/scan_job.rb @@ -1,20 +1,5 @@ class SpaminatorPlugin::ScanJob < Struct.new(:environment_id) def perform - fork do - environment = Environment.find(environment_id) - settings = Noosfero::Plugin::Settings.new(environment, SpaminatorPlugin) - settings.scanning = true - settings.save! - - begin - SpaminatorPlugin::Spaminator.run(environment) - rescue Exception => exception - SpaminatorPlugin::Spaminator.log("Spaminator failed with the following error: \n ==> #{exception}\n#{exception.backtrace.join("\n")}") - end - - settings.scanning = false - SpaminatorPlugin.schedule_scan(environment) if settings.deployed - settings.save! - end + fork {system("ruby #{File.join(SpaminatorPlugin.root_path, 'script', 'scan')} #{environment_id}") } end end diff --git a/plugins/spaminator/script/scan b/plugins/spaminator/script/scan new file mode 100755 index 0000000..dbe68d1 --- /dev/null +++ b/plugins/spaminator/script/scan @@ -0,0 +1,4 @@ +#!/usr/bin/env ruby + +require File.dirname(__FILE__) + '/../../../config/environment' +SpaminatorPlugin::Scan.run(ARGV[0]) -- libgit2 0.21.2