class ProspectusTerraform::Lookup
Lookup
object to find providers
Constants
- PROVIDER_REGEX
- REPO_REGEX
Public Instance Methods
cmd_name()
click to toggle source
# File lib/prospectus_terraform/providers.rb, line 23 def cmd_name 'terraform-config-inspect --json' end
config_json()
click to toggle source
# File lib/prospectus_terraform/providers.rb, line 16 def config_json return @config_json if @config_json stdout, stderr, status = Open3.capture3(cmd_name) raise("#{cmd_name} failed") unless status.success? && stderr.empty? @config_json = stdout end
default_repo(name)
click to toggle source
# File lib/prospectus_terraform/providers.rb, line 45 def default_repo(name) "terraform-providers/terraform-provider-#{name}" end
match_to_hash(lines, regex)
click to toggle source
# File lib/prospectus_terraform/providers.rb, line 41 def match_to_hash(lines, regex) lines.map { |x| x.match(regex) }.compact.map { |x| [x[1], x[2]] }.to_h end
providers()
click to toggle source
# File lib/prospectus_terraform/providers.rb, line 27 def providers @providers ||= JSON.parse(config_json)['required_providers'].map do |k, v| [k, v.first] end end
repo_lines()
click to toggle source
# File lib/prospectus_terraform/providers.rb, line 37 def repo_lines @repo_lines ||= File.read('main.tf').lines end
repos()
click to toggle source
# File lib/prospectus_terraform/providers.rb, line 33 def repos @repos ||= match_to_hash(repo_lines, REPO_REGEX) end
results()
click to toggle source
# File lib/prospectus_terraform/providers.rb, line 10 def results @results ||= providers.map do |name, version| [name, version, repos[name] || default_repo(name)] end end