Sha256: 4dc2c32da5d3b6c16ffeed64b8779065450a3b2aa288083dc01d175e36b64e35
Contents?: true
Size: 1.46 KB
Versions: 6
Compression:
Stored size: 1.46 KB
Contents
class Terraspace::CLI::Fmt class Runner include Terraspace::CLI::Concerns::SourceDirs include Terraspace::Util::Logging SKIP_PATTERN = /\.skip$/ def initialize(dir) @dir = dir end def format! logger.info @dir.color(:green) exit_status = nil Dir.chdir(@dir) do skip_rename begin exit_status = terraform_fmt ensure restore_rename end end exit_status end def skip_rename tf_files.each do |path| if !skip?(path) && erb?(path) FileUtils.mv(path, "#{path}.skip") end end end def terraform_fmt sh "#{Terraspace.terraform_bin} fmt" end def sh(command) logger.debug("=> #{command}") success = system(command) unless success logger.info "WARN: There were some errors running terraform fmt for files in #{@dir}:".color(:yellow) logger.info "The errors are shown above" end $?.exitstatus end def restore_rename tf_files.each do |path| if skip?(path) && erb?(path) FileUtils.mv(path, path.sub(SKIP_PATTERN, '')) # original name end end end private def skip?(path) !!(path =~ SKIP_PATTERN) end def erb?(path) IO.readlines(path).detect { |l| l.include?('<%') } end def tf_files Dir.glob("#{Terraspace.root}/#{@dir}/**/*.{tf,skip}").select { |p| File.file?(p) } end end end
Version data entries
6 entries across 6 versions & 1 rubygems