diff options
| author | Markus Reiter | 2017-05-22 04:15:11 +0200 | 
|---|---|---|
| committer | Markus Reiter | 2017-05-25 06:18:52 +0200 | 
| commit | fd97e88b990b4804e9cfec90e3e5fe60fa54437a (patch) | |
| tree | c32ba2c02e01d1b605021d5301e5e9c4c9e70527 /Library/Homebrew/cask/lib | |
| parent | 060af0a26ab7219e46b500fd1c7f420b6cc74cbb (diff) | |
| download | brew-fd97e88b990b4804e9cfec90e3e5fe60fa54437a.tar.bz2 | |
Use `LockFile` instead of `Hbc::Utils::file_locked?`.
Diffstat (limited to 'Library/Homebrew/cask/lib')
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/cli/cleanup.rb | 14 | ||||
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/download_strategy.rb | 18 | ||||
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/utils.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/utils/file.rb | 14 | 
4 files changed, 20 insertions, 28 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/cli/cleanup.rb b/Library/Homebrew/cask/lib/hbc/cli/cleanup.rb index e25393230..40b37dd5d 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/cleanup.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/cleanup.rb @@ -75,14 +75,18 @@ module Hbc          paths.each do |item|            next unless item.exist?            processed_files += 1 -          if Utils.file_locked?(item) + +          begin +            LockFile.new(item.basename).with_lock do +              puts item +              item_size = File.size?(item) +              cleanup_size += item_size unless item_size.nil? +              item.unlink +            end +          rescue OperationInProgressError              puts "skipping: #{item} is locked"              next            end -          puts item -          item_size = File.size?(item) -          cleanup_size += item_size unless item_size.nil? -          item.unlink          end          if processed_files.zero? diff --git a/Library/Homebrew/cask/lib/hbc/download_strategy.rb b/Library/Homebrew/cask/lib/hbc/download_strategy.rb index 137af319a..935391558 100644 --- a/Library/Homebrew/cask/lib/hbc/download_strategy.rb +++ b/Library/Homebrew/cask/lib/hbc/download_strategy.rb @@ -82,10 +82,16 @@ module Hbc      end      def clear_cache -      [cached_location, temporary_path].each do |f| -        next unless f.exist? -        raise CurlDownloadStrategyError, "#{f} is in use by another process" if Utils.file_locked?(f) -        f.unlink +      [cached_location, temporary_path].each do |path| +        next unless path.exist? + +        begin +          LockFile.new(path.basename).with_lock do +            path.unlink +          end +        rescue OperationInProgressError +          raise CurlDownloadStrategyError, "#{path} is in use by another process" +        end        end      end @@ -105,10 +111,8 @@ module Hbc        else          had_incomplete_download = temporary_path.exist?          begin -          File.open(temporary_path, "a+") do |f| -            f.flock(File::LOCK_EX) +          LockFile.new(temporary_path.basename).with_lock do              _fetch -            f.flock(File::LOCK_UN)            end          rescue ErrorDuringExecution            # 33 == range not supported diff --git a/Library/Homebrew/cask/lib/hbc/utils.rb b/Library/Homebrew/cask/lib/hbc/utils.rb index 4562fc468..59e85aaeb 100644 --- a/Library/Homebrew/cask/lib/hbc/utils.rb +++ b/Library/Homebrew/cask/lib/hbc/utils.rb @@ -2,8 +2,6 @@ require "yaml"  require "open3"  require "stringio" -require "hbc/utils/file" -  BUG_REPORTS_URL = "https://github.com/caskroom/homebrew-cask#reporting-bugs".freeze  # monkeypatch Object - not a great idea diff --git a/Library/Homebrew/cask/lib/hbc/utils/file.rb b/Library/Homebrew/cask/lib/hbc/utils/file.rb deleted file mode 100644 index 6b80f33ce..000000000 --- a/Library/Homebrew/cask/lib/hbc/utils/file.rb +++ /dev/null @@ -1,14 +0,0 @@ -module Hbc -  module Utils -    module_function - -    def file_locked?(file) -      unlocked = File.open(file).flock(File::LOCK_EX | File::LOCK_NB) -      # revert lock if file was unlocked before check -      File.open(file).flock(File::LOCK_UN) if unlocked -      !unlocked -    rescue -      true -    end -  end -end  | 
