Sha256: 77cceadbf090b63efbd6b0c4d1fb510ec39ace487d7b8009ae4d1d5eb3bf3bb2

Contents?: true

Size: 1.07 KB

Versions: 71

Compression:

Stored size: 1.07 KB

Contents

module Terraspace::Terraform::Tfc
  class Syncer < Terraspace::CLI::Base
    extend Memoist
    include Terraspace::Compiler::DirsConcern
    include Terraspace::Util::Sure

    def run
      are_you_sure?
      mods.each do |mod|
        run_sync(mod)
      end
    end

    def mods
      stacks = @options[:stacks]
      stacks.empty? ? stack_names : stacks
    end

    def run_sync(mod)
      sync(mod).run
    end

    def sync(mod)
      Sync.new(@options.merge(mod: mod))
    end
    memoize :sync

    def are_you_sure?
      message =<<~EOL
        About to sync these project stacks with Terraform Cloud workspaces:

            Stack => Workspace
      EOL

      mods.each do |mod|
        sync = sync(mod)
        message << "    #{mod} => #{sync.workspace_name}\n"
      end
      message << <<~EOL

        A sync does the following for each workspace:

          1. Create or update workspace, including the VCS settings.
          2. Set the working dir.
          3. Set env and terraform variables.

        Are you sure?
      EOL
      sure?(message.chop)
    end
  end
end

Version data entries

71 entries across 71 versions & 1 rubygems

Version Path
terraspace-2.2.17 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.16 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.15 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.14 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.13 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.12 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.11 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.10 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.9 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.8 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.7 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.6 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.5 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.4 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.3 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.2 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.1 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.2.0 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.1.7 lib/terraspace/terraform/tfc/syncer.rb
terraspace-2.1.6 lib/terraspace/terraform/tfc/syncer.rb