class Concourse::Pipeline

Attributes

directory[R]
erb_filename[R]
filename[R]
name[R]
ytt[R]

Public Class Methods

new(name, directory, erb_filename, options={}) click to toggle source
# File lib/concourse/pipeline.rb, line 7
def initialize name, directory, erb_filename, options={}
  @name = name
  @directory = directory
  @erb_filename = File.join(@directory, erb_filename)
  @filename = File.join(@directory, erb_filename + ".generated")
  @ytt = options.key?(:ytt) ? options[:ytt] : false
end

Public Instance Methods

generate() click to toggle source
# File lib/concourse/pipeline.rb, line 15
def generate
  Tempfile.create(["pipeline", ".yml"]) do |f|
    f.write erbify_file(erb_filename, working_directory: directory)
    f.close

    if ytt
      ytt_args = ["-f #{f.path}"]
      ytt_args << "-f #{File.expand_path(File.join(File.dirname(__FILE__), "ytt"))}"
      ytt_args << "-f #{File.join(directory, ytt)}" if ytt.is_a?(String)
      sh ["ytt", ytt_args, "> #{filename}"].flatten.join(" ")
    else
      FileUtils.mv f.path, filename, force: true
    end
  end
end