homebrew-cask-versions/lib/cask/container/cab.rb
Roland Walker dfcbd7154e docs, error msgs, tests for depends_on :formula
replacing depends_on_formula in DSL
2014-09-11 20:33:39 -04:00

21 lines
794 B
Ruby

require 'tmpdir'
class Cask::Container::Cab < Cask::Container::Base
def self.me?(criteria)
(criteria.file.include? 'application/octet-stream;' or
criteria.file.include? 'application/vnd.ms-cab-compressed;') and
! criteria.cabextract.nil? and
criteria.cabextract.include? 'All done, no errors'
end
def extract
cabextract = HOMEBREW_PREFIX.join('bin/cabextract')
if ! Pathname.new(cabextract).exist?
raise CaskError.new "Expected to find cabextract executable. Cask '#{@cask}' must add: depends_on :formula => 'cabextract'"
end
Dir.mktmpdir do |staging_dir|
@command.run!(cabextract, :args => ['-d', staging_dir, '--', @path])
@command.run!('/usr/bin/ditto', :args => ['--', staging_dir, @cask.destination_path])
end
end
end