Sha256: 8104f42947693f9f507ae91d568924716d28770f14167ba4371c5e4782bdd575

Contents?: true

Size: 1.03 KB

Versions: 12

Compression:

Stored size: 1.03 KB

Contents

module Ufo
  class DockerfileUpdater
    def initialize(full_image_name, options={})
      @full_image_name = full_image_name
      @options = options
      @project_root = options[:project_root] || '.'
    end

    def update
      write_new_dockerfile
    end

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

    def dockerfile_path
      "#{@project_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:".green
        puts "  #{@full_image_name}".green
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
ufo-1.2.0 lib/ufo/dockerfile_updater.rb
ufo-1.1.0 lib/ufo/dockerfile_updater.rb
ufo-1.0.1 lib/ufo/dockerfile_updater.rb
ufo-1.0.0 lib/ufo/dockerfile_updater.rb
ufo-0.1.6 lib/ufo/dockerfile_updater.rb
ufo-0.1.5 lib/ufo/dockerfile_updater.rb
ufo-0.1.4 lib/ufo/dockerfile_updater.rb
ufo-0.1.3 lib/ufo/dockerfile_updater.rb
ufo-0.1.2 lib/ufo/dockerfile_updater.rb
ufo-0.1.1 lib/ufo/dockerfile_updater.rb
ufo-0.1.0 lib/ufo/dockerfile_updater.rb
ufo-0.0.6 lib/ufo/dockerfile_updater.rb