lib/rspec/terraspace/project.rb in rspec-terraspace-0.3.0 vs lib/rspec/terraspace/project.rb in rspec-terraspace-0.3.1

- old
+ new

@@ -9,10 +9,11 @@ @config = options[:config] @modules = options[:modules] @stacks = options[:stacks] @tfvars = options[:tfvars] @folders = options[:folders] + @plugin = options[:plugin] @remove_test_folder = options[:remove_test_folder].nil? ? true : options[:remove_test_folder] end def create @@ -42,10 +43,32 @@ def build_project parent_dir = File.dirname(build_dir) FileUtils.mkdir_p(parent_dir) Dir.chdir(parent_dir) do project_name = File.basename(build_dir) - ::Terraspace::CLI::New::Project.start([project_name, "--no-config", "--quiet"]) + args = [project_name, "--no-config", "--quiet"] + plugin_option + ::Terraspace::CLI::New::Project.start(args) + end + end + + def plugin_option + if @plugin + ["-p", @plugin] + else + provider = autodetect_provider || "none" + ["-p", provider] + end + end + + def autodetect_provider + providers = Terraspace::Plugin.meta.keys + if providers.size == 1 + providers.first + else + precedence = %w[aws azurerm google] + precedence.find do |p| + providers.include?(p) + end end end def build_config return unless @config