Commit 2249be1c5288373774efd17543ae2886d7bc12fb

Authored by Rodrigo Souto
1 parent 143be35b

Fixing Spaminator to work in production.

plugins/spaminator/lib/spaminator_plugin/scan.rb 0 → 100644
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
  1 +class SpaminatorPlugin::Scan
  2 + def self.run(environment_id)
  3 + environment = Environment.find(environment_id)
  4 + settings = Noosfero::Plugin::Settings.new(environment, SpaminatorPlugin)
  5 + settings.scanning = true
  6 + settings.save!
  7 +
  8 + begin
  9 + SpaminatorPlugin::Spaminator.run(environment)
  10 + rescue Exception => exception
  11 + SpaminatorPlugin::Spaminator.log("Spaminator failed with the following error: \n ==> #{exception}\n#{exception.backtrace.join("\n")}")
  12 + end
  13 +
  14 + settings.scanning = false
  15 + SpaminatorPlugin.schedule_scan(environment) if settings.deployed
  16 + settings.save!
  17 + end
  18 +end
plugins/spaminator/lib/spaminator_plugin/scan_job.rb
1 class SpaminatorPlugin::ScanJob < Struct.new(:environment_id) 1 class SpaminatorPlugin::ScanJob < Struct.new(:environment_id)
2 def perform 2 def perform
3 - fork do  
4 - environment = Environment.find(environment_id)  
5 - settings = Noosfero::Plugin::Settings.new(environment, SpaminatorPlugin)  
6 - settings.scanning = true  
7 - settings.save!  
8 -  
9 - begin  
10 - SpaminatorPlugin::Spaminator.run(environment)  
11 - rescue Exception => exception  
12 - SpaminatorPlugin::Spaminator.log("Spaminator failed with the following error: \n ==> #{exception}\n#{exception.backtrace.join("\n")}")  
13 - end  
14 -  
15 - settings.scanning = false  
16 - SpaminatorPlugin.schedule_scan(environment) if settings.deployed  
17 - settings.save!  
18 - end 3 + fork {system("ruby #{File.join(SpaminatorPlugin.root_path, 'script', 'scan')} #{environment_id}") }
19 end 4 end
20 end 5 end
plugins/spaminator/script/scan 0 → 100755
@@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
  1 +#!/usr/bin/env ruby
  2 +
  3 +require File.dirname(__FILE__) + '/../../../config/environment'
  4 +SpaminatorPlugin::Scan.run(ARGV[0])