class Krane::CLI::RenderCommand

Constants

OPTIONS

Public Class Methods

from_options(options) click to toggle source
# File lib/krane/cli/render_command.rb, line 16
def self.from_options(options)
  require 'krane/render_task'
  require 'krane/bindings_parser'
  require 'krane/options_helper'

  bindings_parser = ::Krane::BindingsParser.new
  options[:bindings]&.each { |b| bindings_parser.add(b) }

  filenames = options[:filenames].dup
  filenames << "-" if options[:stdin]
  if filenames.empty?
    raise(Thor::RequiredArgumentMissingError, '--filenames must be set and not empty')
  end

  ::Krane::OptionsHelper.with_processed_template_paths(filenames, render_erb: true) do |paths|
    renderer = ::Krane::RenderTask.new(
      current_sha: options['current-sha'],
      filenames: paths,
      bindings: bindings_parser.parse,
    )
    renderer.run!(stream: STDOUT)
  end
end