Class: UnpackStrategy::Tar
- Inherits:
-
Object
- Object
- UnpackStrategy::Tar
- Extended by:
- SystemCommand::Mixin
- Includes:
- UnpackStrategy
- Defined in:
- Library/Homebrew/unpack_strategy/tar.rb
Overview
Strategy for unpacking tar archives.
Direct Known Subclasses
Instance Attribute Summary
Attributes included from UnpackStrategy
Class Method Summary collapse
Methods included from SystemCommand::Mixin
system_command, system_command!
Methods included from UnpackStrategy
#dependencies, detect, #extract, #extract_nestedly, from_extension, from_magic, from_type, #initialize
Class Method Details
.can_extract?(path) ⇒ Boolean
24 25 26 27 28 29 30 31 32 |
# File 'Library/Homebrew/unpack_strategy/tar.rb', line 24 def self.can_extract?(path) return true if path.magic_number.match?(/\A.{257}ustar/n) return false unless [Bzip2, Gzip, Lzip, Xz].any? { |s| s.can_extract?(path) } # Check if `tar` can list the contents, then it can also extract it. stdout, _, status = system_command("tar", args: ["tf", path], print_stderr: false) status.success? && !stdout.empty? end |
.extensions ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'Library/Homebrew/unpack_strategy/tar.rb', line 14 def self.extensions [ ".tar", ".tbz", ".tbz2", ".tar.bz2", ".tgz", ".tar.gz", ".tlzma", ".tar.lzma", ".txz", ".tar.xz" ] end |