class FPM::Fry::BuildOutputParser

Attributes

images[R]

Public Class Methods

new(*_) click to toggle source
Calls superclass method
# File lib/fpm/fry/build_output_parser.rb, line 7
def initialize(*_)
  super
  @images = []
end

Public Instance Methods

call(chunk, *_) click to toggle source
# File lib/fpm/fry/build_output_parser.rb, line 12
def call(chunk, *_)
  # new docker for Mac results in data like this:
  # "{'stream':' ---\\u003e 3bc51d6a4c46\\n'}\r\n{'stream':'Step 2 : WORKDIR /tmp/build\\n'}\r\n"
  # this isn't valid JSON, of course, so we process each part individually
  chunk.split("\r\n").each do |sub_chunk|
    json = JSON.parse(sub_chunk)
    stream = json['stream']
    if /\ASuccessfully built (\w+)\Z/.match(stream)
      images << $1
    end
    out << stream
  end
end