Look for container extraction programs in PATH.
This commit is contained in:
		
							parent
							
								
									9f76e2bbe3
								
							
						
					
					
						commit
						8d83516577
					
				@ -6,17 +6,15 @@ module Hbc
 | 
				
			|||||||
  class Container
 | 
					  class Container
 | 
				
			||||||
    class Cab < Base
 | 
					    class Cab < Base
 | 
				
			||||||
      def self.me?(criteria)
 | 
					      def self.me?(criteria)
 | 
				
			||||||
        cabextract = Hbc.homebrew_prefix.join("bin", "cabextract")
 | 
					        cabextract = which("cabextract")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        criteria.magic_number(%r{^MSCF}n) &&
 | 
					        criteria.magic_number(%r{^MSCF}n) &&
 | 
				
			||||||
          cabextract.exist? &&
 | 
					          !cabextract.nil? &&
 | 
				
			||||||
          criteria.command.run(cabextract, args: ["-t", "--", criteria.path.to_s]).stderr.empty?
 | 
					          criteria.command.run(cabextract, args: ["-t", "--", criteria.path.to_s]).stderr.empty?
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def extract
 | 
					      def extract
 | 
				
			||||||
        cabextract = Hbc.homebrew_prefix.join("bin", "cabextract")
 | 
					        if (cabextract = which("cabextract")).nil?
 | 
				
			||||||
 | 
					 | 
				
			||||||
        unless cabextract.exist?
 | 
					 | 
				
			||||||
          raise CaskError, "Expected to find cabextract executable. Cask '#{@cask}' must add: depends_on formula: 'cabextract'"
 | 
					          raise CaskError, "Expected to find cabextract executable. Cask '#{@cask}' must add: depends_on formula: 'cabextract'"
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -14,9 +14,7 @@ module Hbc
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def extract
 | 
					      def extract
 | 
				
			||||||
        unar = Hbc.homebrew_prefix.join("bin", "unar")
 | 
					        if (unar = which("unar")).nil?
 | 
				
			||||||
 | 
					 | 
				
			||||||
        unless unar.exist?
 | 
					 | 
				
			||||||
          raise CaskError, "Expected to find unar executable. Cask #{@cask} must add: depends_on formula: 'unar'"
 | 
					          raise CaskError, "Expected to find unar executable. Cask #{@cask} must add: depends_on formula: 'unar'"
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -10,9 +10,7 @@ module Hbc
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def extract
 | 
					      def extract
 | 
				
			||||||
        unlzma = Hbc.homebrew_prefix.join("bin", "unlzma")
 | 
					        if (unlzma = which("unlzma")).nil?
 | 
				
			||||||
 | 
					 | 
				
			||||||
        unless unlzma.exist?
 | 
					 | 
				
			||||||
          raise CaskError, "Expected to find unlzma executable. Cask '#{@cask}' must add: depends_on formula: 'lzma'"
 | 
					          raise CaskError, "Expected to find unlzma executable. Cask '#{@cask}' must add: depends_on formula: 'lzma'"
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -10,9 +10,7 @@ module Hbc
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def extract
 | 
					      def extract
 | 
				
			||||||
        unxz = Hbc.homebrew_prefix.join("bin", "unxz")
 | 
					        if (unxz = which("unxz")).nil?
 | 
				
			||||||
 | 
					 | 
				
			||||||
        unless unxz.exist?
 | 
					 | 
				
			||||||
          raise CaskError, "Expected to find unxz executable. Cask '#{@cask}' must add: depends_on formula: 'xz'"
 | 
					          raise CaskError, "Expected to find unxz executable. Cask '#{@cask}' must add: depends_on formula: 'xz'"
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -42,7 +42,7 @@ describe Hbc::Installer do
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it "works with cab-based Casks" do
 | 
					    it "works with cab-based Casks" do
 | 
				
			||||||
      skip("cabextract not installed") unless Hbc.homebrew_prefix.join("bin", "cabextract").exist?
 | 
					      skip("cabextract not installed") if which("cabextract").nil?
 | 
				
			||||||
      asset = Hbc.load("container-cab")
 | 
					      asset = Hbc.load("container-cab")
 | 
				
			||||||
      empty = stub(formula: [], cask: [], macos: nil, arch: nil, x11: nil)
 | 
					      empty = stub(formula: [], cask: [], macos: nil, arch: nil, x11: nil)
 | 
				
			||||||
      asset.stubs(:depends_on).returns(empty)
 | 
					      asset.stubs(:depends_on).returns(empty)
 | 
				
			||||||
@ -72,7 +72,7 @@ describe Hbc::Installer do
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it "works with 7z-based Casks" do
 | 
					    it "works with 7z-based Casks" do
 | 
				
			||||||
      skip("unar not installed") unless Hbc.homebrew_prefix.join("bin", "unar").exist?
 | 
					      skip("unar not installed") if which("unar").nil?
 | 
				
			||||||
      asset = Hbc.load("container-7z")
 | 
					      asset = Hbc.load("container-7z")
 | 
				
			||||||
      empty = stub(formula: [], cask: [], macos: nil, arch: nil, x11: nil)
 | 
					      empty = stub(formula: [], cask: [], macos: nil, arch: nil, x11: nil)
 | 
				
			||||||
      asset.stubs(:depends_on).returns(empty)
 | 
					      asset.stubs(:depends_on).returns(empty)
 | 
				
			||||||
@ -101,7 +101,7 @@ describe Hbc::Installer do
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it "works with Stuffit-based Casks" do
 | 
					    it "works with Stuffit-based Casks" do
 | 
				
			||||||
      skip("unar not installed") unless Hbc.homebrew_prefix.join("bin", "unar").exist?
 | 
					      skip("unar not installed") if which("unar").nil?
 | 
				
			||||||
      asset = Hbc.load("container-sit")
 | 
					      asset = Hbc.load("container-sit")
 | 
				
			||||||
      empty = stub(formula: [], cask: [], macos: nil, arch: nil, x11: nil)
 | 
					      empty = stub(formula: [], cask: [], macos: nil, arch: nil, x11: nil)
 | 
				
			||||||
      asset.stubs(:depends_on).returns(empty)
 | 
					      asset.stubs(:depends_on).returns(empty)
 | 
				
			||||||
@ -117,7 +117,7 @@ describe Hbc::Installer do
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it "works with RAR-based Casks" do
 | 
					    it "works with RAR-based Casks" do
 | 
				
			||||||
      skip("unar not installed") unless Hbc.homebrew_prefix.join("bin", "unar").exist?
 | 
					      skip("unar not installed") if which("unar").nil?
 | 
				
			||||||
      asset = Hbc.load("container-rar")
 | 
					      asset = Hbc.load("container-rar")
 | 
				
			||||||
      empty = stub(formula: [], cask: [], macos: nil, arch: nil, x11: nil)
 | 
					      empty = stub(formula: [], cask: [], macos: nil, arch: nil, x11: nil)
 | 
				
			||||||
      asset.stubs(:depends_on).returns(empty)
 | 
					      asset.stubs(:depends_on).returns(empty)
 | 
				
			||||||
@ -159,7 +159,7 @@ describe Hbc::Installer do
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it "works with pure xz-based Casks" do
 | 
					    it "works with pure xz-based Casks" do
 | 
				
			||||||
      skip("unxz not installed") unless Hbc.homebrew_prefix.join("bin", "unxz").exist?
 | 
					      skip("unxz not installed") if which("unxz").nil?
 | 
				
			||||||
      asset = Hbc.load("container-xz")
 | 
					      asset = Hbc.load("container-xz")
 | 
				
			||||||
      empty = stub(formula: [], cask: [], macos: nil, arch: nil, x11: nil)
 | 
					      empty = stub(formula: [], cask: [], macos: nil, arch: nil, x11: nil)
 | 
				
			||||||
      asset.stubs(:depends_on).returns(empty)
 | 
					      asset.stubs(:depends_on).returns(empty)
 | 
				
			||||||
@ -175,7 +175,7 @@ describe Hbc::Installer do
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it "works with lzma-based Casks" do
 | 
					    it "works with lzma-based Casks" do
 | 
				
			||||||
      skip("unlzma not installed") unless Hbc.homebrew_prefix.join("bin", "unlzma").exist?
 | 
					      skip("unlzma not installed") if which("unlzma").nil?
 | 
				
			||||||
      asset = Hbc.load("container-lzma")
 | 
					      asset = Hbc.load("container-lzma")
 | 
				
			||||||
      empty = stub(formula: [], cask: [], macos: nil, arch: nil, x11: nil)
 | 
					      empty = stub(formula: [], cask: [], macos: nil, arch: nil, x11: nil)
 | 
				
			||||||
      asset.stubs(:depends_on).returns(empty)
 | 
					      asset.stubs(:depends_on).returns(empty)
 | 
				
			||||||
 | 
				
			|||||||
@ -151,17 +151,7 @@ require "support/never_sudo_system_command"
 | 
				
			|||||||
require "tmpdir"
 | 
					require "tmpdir"
 | 
				
			||||||
require "tempfile"
 | 
					require "tempfile"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# create directories
 | 
					 | 
				
			||||||
FileUtils.mkdir_p Hbc.homebrew_prefix.join("bin")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Common superclass for test Casks for when we need to filter them out
 | 
					# Common superclass for test Casks for when we need to filter them out
 | 
				
			||||||
module Hbc
 | 
					module Hbc
 | 
				
			||||||
  class TestCask < Cask; end
 | 
					  class TestCask < Cask; end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					 | 
				
			||||||
# jack in some optional utilities
 | 
					 | 
				
			||||||
FileUtils.ln_s "/usr/local/bin/cabextract", Hbc.homebrew_prefix.join("bin/cabextract")
 | 
					 | 
				
			||||||
FileUtils.ln_s "/usr/local/bin/unar", Hbc.homebrew_prefix.join("bin/unar")
 | 
					 | 
				
			||||||
FileUtils.ln_s "/usr/local/bin/unlzma", Hbc.homebrew_prefix.join("bin/unlzma")
 | 
					 | 
				
			||||||
FileUtils.ln_s "/usr/local/bin/unxz", Hbc.homebrew_prefix.join("bin/unxz")
 | 
					 | 
				
			||||||
FileUtils.ln_s "/usr/local/bin/lsar", Hbc.homebrew_prefix.join("bin/lsar")
 | 
					 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user