class FPM::Fry::Source::Archive::TarCache

Public Instance Methods

copy_to(dst) click to toggle source
# File lib/fpm/fry/source/archive.rb, line 156
def copy_to(dst)
  update!
  Exec['tar','-xf',tempfile,'-C',dst, logger: logger]
end
prefix() click to toggle source
# File lib/fpm/fry/source/archive.rb, line 161
def prefix
  update!
  @prefix ||= prefix!
end
prefix!() click to toggle source
# File lib/fpm/fry/source/archive.rb, line 166
def prefix!
  longest = nil
  Exec.popen('tar','-tf',tempfile, logger: logger).each_line.map do |line|
    line = line.chomp
    parts = line.split('/')
    parts.pop unless line[-1] == '/'
    if longest.nil?
      longest = parts
    else
      longest.each_with_index do | e, i |
        if parts[i] != e
          longest = longest[0...i]
          break
        end
      end
      break if longest.none?
    end
  end
  return Array(longest).join('/')
end
tar_io() click to toggle source
# File lib/fpm/fry/source/archive.rb, line 151
def tar_io
  update!
  ioclass.open(tempfile)
end

Protected Instance Methods

ioclass() click to toggle source
# File lib/fpm/fry/source/archive.rb, line 188
def ioclass
  File
end