Class: Terraspace::Builder::Allow

Inherits:
Object
  • Object
show all
Defined in:
lib/terraspace/builder/allow.rb

Instance Method Summary collapse

Constructor Details

#initialize(mod) ⇒ Allow

Returns a new instance of Allow.



3
4
5
# File 'lib/terraspace/builder/allow.rb', line 3

def initialize(mod)
  @mod = mod
end

Instance Method Details

#check!Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/terraspace/builder/allow.rb', line 7

def check!
  messages = []
  unless env_allowed?
    messages << "This env is not allowed to be used: TS_ENV=#{Terraspace.env}"
    messages << "Allowed envs: #{config.allow.envs.join(', ')}"
  end
  unless region_allowed?
    messages << "This region is not allowed to be used: Detected current region=#{current_region}"
    messages << "Allowed regions: #{config.allow.regions.join(', ')}"
  end
  unless messages.empty?
    puts "ERROR: The configs do not allow this.".color(:red)
    puts messages
    exit 1
  end
end

#configObject



39
40
41
# File 'lib/terraspace/builder/allow.rb', line 39

def config
  Terraspace.config
end

#current_regionObject



34
35
36
37
# File 'lib/terraspace/builder/allow.rb', line 34

def current_region
  expander = Terraspace::Compiler::Expander.autodetect(@mod).expander
  expander.region
end

#env_allowed?Boolean

Returns:

  • (Boolean)


24
25
26
27
# File 'lib/terraspace/builder/allow.rb', line 24

def env_allowed?
  return true unless config.allow.envs
  config.allow.envs.include?(Terraspace.env)
end

#region_allowed?Boolean

Returns:

  • (Boolean)


29
30
31
32
# File 'lib/terraspace/builder/allow.rb', line 29

def region_allowed?
  return true unless config.allow.regions
  config.allow.regions.include?(current_region)
end