Sha256: 68f9b5ecad72e04716551700da61a317ac87077058bbccf8e817dc72ff6aefe3

Contents?: true

Size: 1.53 KB

Versions: 10

Compression:

Stored size: 1.53 KB

Contents

# frozen_string_literal: true

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

      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)

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

          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 do
              plan.run_interactive
            end
            if abort_message
              log Paint["Aborted: #{abort_message}", :red]
            end
          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

10 entries across 10 versions & 1 rubygems

Version Path
mux_tf-0.8.4 lib/mux_tf/cli/plan_summary.rb
mux_tf-0.8.3 lib/mux_tf/cli/plan_summary.rb
mux_tf-0.8.2 lib/mux_tf/cli/plan_summary.rb
mux_tf-0.8.1 lib/mux_tf/cli/plan_summary.rb
mux_tf-0.8.0 lib/mux_tf/cli/plan_summary.rb
mux_tf-0.7.2 lib/mux_tf/cli/plan_summary.rb
mux_tf-0.7.1 lib/mux_tf/cli/plan_summary.rb
mux_tf-0.7.0 lib/mux_tf/cli/plan_summary.rb
mux_tf-0.6.1 lib/mux_tf/cli/plan_summary.rb
mux_tf-0.6.0 lib/mux_tf/cli/plan_summary.rb