lib/iapi-idlc-sdk-pfm/command/format.rb
require 'iapi-idlc-sdk-pfm/command/base' require 'mixlib/shellout' module Pfm module Command class Format < Base banner 'Usage: pfm format [options]' def initialize super @params_valid = true @errors = [] end def run(params) @params = params read_and_validate_params if params_valid? fmt # @workspace.cleanup causing bundler issues 0 else @errors.each { |error| err("Error: #{error}") } parse_options(params) msg(opt_parser) 1 end rescue DeploymentFailure => e err("ERROR: #{e.message}\n") 1 end def fmt raise InvalidRepository, 'This doesn\'t look like a valid infrastructure repository' unless File.directory? "#{inf_base_dir}/tf" tf_paths = %W[#{inf_base_dir}/tf lib/tf/modules] begin if upgraded_terraform? Terraform::Binary::Command.run("-chdir #{inf_base_dir}/tf fmt") else tf_paths.each do |path| # Format the file to a canonical syntax Terraform::Binary.fmt(path) end end rescue raise DeploymentFailure, 'Finished with errors' end end def read_and_validate_params arguments = parse_options(@params) case arguments.size when 0 @params_valid = true else @params_valid = false end end def params_valid? @params_valid end end end end