lib/lsync.rb in lsync-2.3.2 vs lib/lsync.rb in lsync-2.3.3
- old
+ new
@@ -31,19 +31,28 @@
require 'fileutils'
require 'optparse'
require 'open-uri'
+require 'lockfile'
module LSync
-
+
+ # Run a prepared backup script using a lockfile.
def self.run_script(options = {}, &block)
script = LSync::Script.new(options, &block)
-
+ lockfile_path = $0 + ".lock"
+
script.on(:failure) do |error|
LSync::log_error(error, logger)
end
- script.run!
+ begin
+ Lockfile.new(lockfile_path, :retries => 0) do
+ script.run!
+ end
+ rescue Lockfile::MaxTriesLockError
+ raise LockError.new("Lockfile #{lockfile_path} could not be acquired.")
+ end
end
end