diff options
| author | Vítor Galvão | 2017-03-30 15:40:20 +0100 |
|---|---|---|
| committer | GitHub | 2017-03-30 15:40:20 +0100 |
| commit | 0882e9ddbc2b4507038d87e21233ce29031b995b (patch) | |
| tree | eb9c1b90b2df0d1a19abe3b45f88fe7189582e11 /Library | |
| parent | c69e4ee2f6b7cd01d1e0731ce214d26607d1427d (diff) | |
| parent | 1be120f4c1d7f0be24ead200a6cb0925acc90129 (diff) | |
| download | brew-0882e9ddbc2b4507038d87e21233ce29031b995b.tar.bz2 | |
Merge pull request #2410 from reitermarkus/container-exectuable
Add `Container::Executable`.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/container.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/container/executable.rb | 18 |
2 files changed, 20 insertions, 0 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/container.rb b/Library/Homebrew/cask/lib/hbc/container.rb index fc7246f3d..c6b2c3c37 100644 --- a/Library/Homebrew/cask/lib/hbc/container.rb +++ b/Library/Homebrew/cask/lib/hbc/container.rb @@ -4,6 +4,7 @@ require "hbc/container/bzip2" require "hbc/container/cab" require "hbc/container/criteria" require "hbc/container/dmg" +require "hbc/container/executable" require "hbc/container/generic_unar" require "hbc/container/gzip" require "hbc/container/lzma" @@ -39,6 +40,7 @@ module Hbc Gzip, # pure gzip Lzma, # pure lzma Xz, # pure xz + Executable, ] # for explicit use only (never autodetected): # Hbc::Container::Naked diff --git a/Library/Homebrew/cask/lib/hbc/container/executable.rb b/Library/Homebrew/cask/lib/hbc/container/executable.rb new file mode 100644 index 000000000..848f6d4be --- /dev/null +++ b/Library/Homebrew/cask/lib/hbc/container/executable.rb @@ -0,0 +1,18 @@ +require "hbc/container/naked" +require "vendor/macho/macho" + +module Hbc + class Container + class Executable < Naked + def self.me?(criteria) + return true if criteria.magic_number(/^#!\s*\S+/) + + begin + MachO.open(criteria.path).header.executable? + rescue MachO::MagicError + false + end + end + end + end +end |
