Sha256: e52526823e22a3ed7802f7ee6ca7944dfd6a819331b6b8813855eadffda4d3f4
Contents?: true
Size: 1.52 KB
Versions: 48
Compression:
Stored size: 1.52 KB
Contents
# frozen_string_literal: true module Krane module CLI class RenderCommand OPTIONS = { "bindings" => { type: :array, banner: "foo=bar abc=def", desc: 'Bindings for erb' }, "filenames" => { type: :array, banner: 'config/deploy/production config/deploy/my-extra-resource.yml', required: false, default: [], aliases: 'f', desc: 'Directories and files to render' }, "stdin" => { type: :boolean, default: false, desc: "[DEPRECATED] Read resources from stdin" }, "current-sha" => { type: :string, banner: "SHA", desc: "Expose SHA `current_sha` in ERB bindings", lazy_default: '' }, } 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 end end end
Version data entries
48 entries across 48 versions & 1 rubygems