Sha256: bd37485b714a287a992e881258cb371c56e09078b28c74575ad4c25f601323dd

Contents?: true

Size: 1003 Bytes

Versions: 18

Compression:

Stored size: 1003 Bytes

Contents

class Terraspace::CLI::New
  class Example < Thor::Group
    include Thor::Actions

    # only stack name is configurable
    argument :name, default: "demo"

    def self.options
      # default is nil for autodetection
      [
        [:force, aliases: %w[f], type: :boolean, desc: "Force overwrite"],
        [:lang, default: "hcl", desc: "Language to use: HCL/ERB or Ruby DSL"],
        [:plugin, aliases: %w[p], default: nil, type: :string],
      ]
    end
    options.each { |args| class_option(*args) }

    def create
      Module.start(["example", "--examples"] + cli_args)
      Stack.start([name, "--examples"] + cli_args)
    end

  private
    def cli_args
      plugin = @options[:plugin] || Terraspace::Autodetect.new.plugin
      args = if plugin
        ['--plugin', plugin]
      else
        ['--plugin', 'none'] # override default of aws
      end
      args << "--force" if @options[:force]
      args += ["--lang", @options[:lang]] if @options[:lang]
      args
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
terraspace-1.1.7 lib/terraspace/cli/new/example.rb
terraspace-1.1.6 lib/terraspace/cli/new/example.rb
terraspace-1.1.5 lib/terraspace/cli/new/example.rb
terraspace-1.1.4 lib/terraspace/cli/new/example.rb
terraspace-1.1.3 lib/terraspace/cli/new/example.rb
terraspace-1.1.2 lib/terraspace/cli/new/example.rb
terraspace-1.1.1 lib/terraspace/cli/new/example.rb
terraspace-1.1.0 lib/terraspace/cli/new/example.rb
terraspace-1.0.6 lib/terraspace/cli/new/example.rb
terraspace-1.0.5 lib/terraspace/cli/new/example.rb
terraspace-1.0.4 lib/terraspace/cli/new/example.rb
terraspace-1.0.3 lib/terraspace/cli/new/example.rb
terraspace-1.0.2 lib/terraspace/cli/new/example.rb
terraspace-1.0.1 lib/terraspace/cli/new/example.rb
terraspace-1.0.0 lib/terraspace/cli/new/example.rb
terraspace-0.7.2 lib/terraspace/cli/new/example.rb
terraspace-0.7.1 lib/terraspace/cli/new/example.rb
terraspace-0.7.0 lib/terraspace/cli/new/example.rb