DEV: raise error only when 'STOP_ON_ERROR' env variable is available.

DEV: raise error only when ‘STOP_ON_ERROR’ env variable is available.

diff --git a/lib/tasks/uploads.rake b/lib/tasks/uploads.rake
index 3c4dc29..bf7b539 100644
--- a/lib/tasks/uploads.rake
+++ b/lib/tasks/uploads.rake
@@ -898,12 +898,13 @@ task "uploads:recover" => :environment do
   require_dependency "upload_recovery"
 
   dry_run = ENV["DRY_RUN"].present?
+  stop_on_error = ENV["STOP_ON_ERROR"].present?
 
   if ENV["RAILS_DB"]
-    UploadRecovery.new(dry_run: dry_run).recover
+    UploadRecovery.new(dry_run: dry_run, stop_on_error: stop_on_error).recover
   else
     RailsMultisite::ConnectionManagement.each_connection do |db|
-      UploadRecovery.new(dry_run: dry_run).recover
+      UploadRecovery.new(dry_run: dry_run, stop_on_error: stop_on_error).recover
     end
   end
 end
diff --git a/lib/upload_recovery.rb b/lib/upload_recovery.rb
index 5b3fd5b..95af2dc 100644
--- a/lib/upload_recovery.rb
+++ b/lib/upload_recovery.rb
@@ -1,8 +1,9 @@
 # frozen_string_literal: true
 
 class UploadRecovery
-  def initialize(dry_run: false)
+  def initialize(dry_run: false, stop_on_error: false)
     @dry_run = dry_run
+    @stop_on_error = stop_on_error
   end
 
   def recover(posts = Post)
@@ -40,7 +41,7 @@ class UploadRecovery
           end
         end
       rescue => e
-        raise e unless @dry_run
+        raise e if @stop_on_error
         puts "#{post.full_url} #{e.class}: #{e.message}"
       end
     end

GitHub sha: e44d56e4