Sha256: 4320d928526547a28ed1c883e45b4015f78e4d9901cbdc48eff4e7b1d32e9397

Contents?: true

Size: 1018 Bytes

Versions: 7

Compression:

Stored size: 1018 Bytes

Contents

module Ufo
  class Docker::Dockerfile
    def initialize(full_image_name, options={})
      @full_image_name = full_image_name
      @options = options
    end

    def update
      write_new_dockerfile
    end

    def current_dockerfile
      @current_dockerfile ||= IO.read(dockerfile_path)
    end

    def dockerfile_path
      "#{Ufo.root}/Dockerfile"
    end

    def new_dockerfile
      lines = current_dockerfile.split("\n")
      # replace FROM line
      new_lines = lines.map do |line|
                    if line =~ /^FROM /
                      "FROM #{@full_image_name}"
                    else
                      line
                    end
                  end
      new_lines.join("\n") + "\n"
    end

    def write_new_dockerfile
      IO.write(dockerfile_path, new_dockerfile)
      unless @options[:mute]
        puts "The Dockerfile FROM statement has been updated with the latest base image:".color(:green)
        puts "  #{@full_image_name}".color(:green)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ufo-4.4.3 lib/ufo/docker/dockerfile.rb
ufo-4.4.2 lib/ufo/docker/dockerfile.rb
ufo-4.4.1 lib/ufo/docker/dockerfile.rb
ufo-4.4.0 lib/ufo/docker/dockerfile.rb
ufo-4.3.1 lib/ufo/docker/dockerfile.rb
ufo-4.3.0 lib/ufo/docker/dockerfile.rb
ufo-4.2.0 lib/ufo/docker/dockerfile.rb