Sha256: 7925fbcfe396bc22c4c3eea8abc20c13748a9bebf49d92c347b537dfc78d6476

Contents?: true

Size: 999 Bytes

Versions: 30

Compression:

Stored size: 999 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::Plugin.autodetect
      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

30 entries across 30 versions & 1 rubygems

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