Class: Piperun::Filters::TarFilter

Inherits:
Filter
  • Object
show all
Defined in:
lib/piperun/filters/tar_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(output, options = {}) ⇒ TarFilter

Returns a new instance of TarFilter.



3
4
5
6
7
8
# File 'lib/piperun/filters/tar_filter.rb', line 3

def initialize(output, options = {})
  super()

  @output = output
  @options = options
end

Instance Method Details

#external_dependenciesObject



24
25
26
# File 'lib/piperun/filters/tar_filter.rb', line 24

def external_dependencies
  ['archive/tar/minitar']
end

#run(src, dst, files) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/piperun/filters/tar_filter.rb', line 10

def run(src, dst, files)
  dstpath = File.join(dst, @output)
  FileUtils::mkdir_p File.dirname(dstpath)

  File.open(dstpath, 'wb') do |out|
    tar = Archive::Tar::Minitar::Output.new out
    Dir.chdir src do 
      files.each { |f| Archive::Tar::Minitar.pack_file(f, tar) }
    end
  end

  return [@output]
end