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