Sha256: ef9251da43ec3d27a9d43b24dea94b31d9bf443f7578670ef1dbe7e849054d2f
Contents?: true
Size: 1.59 KB
Versions: 2
Compression:
Stored size: 1.59 KB
Contents
# frozen_string_literal: true module Remocon module Command class Validate include Remocon::InterpreterHelper attr_reader :config, :cmd_opts def initialize(opts) @config = Remocon::Config.new(opts.merge(force: false)) @cmd_opts = { validate_only: true } end def require_parameters_file_path config.parameters_file_path end def require_conditions_file_path config.conditions_file_path end def run validate_options errors = parameter_errors + condition_errors + etag_errors print_errors(errors) errors.empty? end def print_errors(errors) if errors.empty? STDOUT.puts "No error was found." else errors.each do |e| STDERR.puts "#{e.class} #{e.message}" STDERR.puts e.backtrace&.join("\n") end end end private def validate_options raise ValidationError, "A condition file must exist" unless File.exist?(config.conditions_file_path) raise ValidationError, "A parameter file must exist" unless File.exist?(config.parameters_file_path) raise ValidationError, "An etag file must exist" unless File.exist?(config.etag_file_path) end def remote_etag @remote_etag ||= Remocon::Request.fetch_etag(config) end def etag_errors if config.etag != remote_etag [ValidationError.new("#{config.etag} is found but the latest etag is #{remote_etag || 'none'}")] else [] end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
remocon-0.4.0 | lib/remocon/command/validate_command.rb |
remocon-0.4.0.pre.1 | lib/remocon/command/validate_command.rb |