Sha256: 4c3672d7f384253b2d5718d7b9c90588c3c0bbe0a3b6be134bd434293b9aad24

Contents?: true

Size: 1.5 KB

Versions: 4

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

module MuxTf
  module Cli
    module PlanSummary
      extend PiotrbCliUtils::Util
      extend PiotrbCliUtils::ShellHelpers
      extend TerraformHelpers
      import Coloring

      class << self
        def run(args)
          options = {
            interactive: false,
            hierarchy: false
          }

          args = OptionParser.new { |opts|
            opts.on("-i") do |v|
              options[:interactive] = v
            end
            opts.on("-h") do |v|
              options[:hierarchy] = v
            end
          }.parse!(args)

          raise "must specify plan file in interactive mode" if options[:interactive] && args[0].blank?

          plan = if args[0]
                   PlanSummaryHandler.from_file(args[0])
                 else
                   PlanSummaryHandler.from_data(JSON.parse($stdin.read))
                 end

          if options[:interactive]
            abort_message = catch(:abort) { plan.run_interactive }
            log pastel.red("Aborted: #{abort_message}") if abort_message
          else
            if options[:hierarchy]
              plan.nested_summary.each do |line|
                puts line
              end
            else
              plan.flat_summary.each do |line|
                puts line
              end
              plan.output_summary.each do |line|
                puts line
              end
            end
            puts
            puts plan.summary
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mux_tf-0.15.0 lib/mux_tf/cli/plan_summary.rb
mux_tf-0.14.2 lib/mux_tf/cli/plan_summary.rb
mux_tf-0.14.1 lib/mux_tf/cli/plan_summary.rb
mux_tf-0.14.0 lib/mux_tf/cli/plan_summary.rb