lono 3.4.1 → 3.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f97451bcb37fa800508e0130643bf8c4a200c4aa317bde4ea2a6f1b431b189d2
4
- data.tar.gz: b157b16d9fef5381e4418ab5d80766d38338ccde2138461b0e9ec23d9a1870d9
3
+ metadata.gz: ea871b8860abb2c1fbfc39edeae04a90c43f46780dd8fd4c37a1b97ca6480370
4
+ data.tar.gz: d52b9f70968c615adb50d16b3c84327b2300123b049a48abfa3affd2e5d6699a
5
5
  SHA512:
6
- metadata.gz: 219ff3616088cbc83f8d44f3b69c614fcb9419c5347d18715c890d5e6e369de85b5058757ba613287a9fd15ab8d73c8d26514e2d21a58d4e5482bcf25c6eb539
7
- data.tar.gz: fb44035e6c219ce539ca23308491bf7097289c320b17eaadb8ef0cb068a7cb6ab228a3864941fb165d7f939484bebbfaddae3499ba8756c75665ce8f819cd53f
6
+ metadata.gz: 93bff1d68869ca94ba8ddc8014ceef8f403962d3f0f04261a6461c76e5e354fd2780e8c50e0a1cdcdb458ef5820ee2683014249a163b4d13e7a3f2e4afe0483b
7
+ data.tar.gz: cf812cbf0e9eb23190ddeb615d5d7471bcd19ea31b1094e80ec642ac3b04fa15a2123c8cf43431cf1e8331d41ae3b34e4bbd665167d7fbced8a22c4717a76526
@@ -28,7 +28,7 @@ jobs:
28
28
  # Download and cache dependencies
29
29
  - restore_cache:
30
30
  keys:
31
- - v1-dependencies-{{ checksum "Gemfile.lock" }}
31
+ - v1-dependencies-{{ checksum "Gemfile" }}
32
32
  # fallback to using the latest cache if no exact match is found
33
33
  - v1-dependencies-
34
34
 
@@ -40,21 +40,13 @@ jobs:
40
40
  - save_cache:
41
41
  paths:
42
42
  - ./vendor/bundle
43
- key: v1-dependencies-{{ checksum "Gemfile.lock" }}
43
+ key: v1-dependencies-{{ checksum "Gemfile" }}
44
44
 
45
45
  # run tests!
46
46
  - run:
47
47
  name: run tests
48
48
  command: |
49
49
  mkdir /tmp/test-results
50
-
51
- cat >.rspec <<EOL
52
- --format documentation
53
- --exclude-pattern spec/fixtures/apps/**/*
54
- --format RspecJunitFormatter \
55
- --out /tmp/test-results/rspec.xml
56
- EOL
57
-
58
50
  bundle exec rspec
59
51
 
60
52
  # collect reports
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
5
5
 
6
+ ## [3.5.0]
7
+ - Using Lono.root instead of scattered project_root parameters
8
+ - prefer use of Lono.env over LONO_ENV internally
9
+ - do not remove blank lines from the generated template, it makes user-data scripts harder to read
10
+ - remove adding of extra line to partials, causing issues with user data partials
11
+
6
12
  ## [3.4.1]
7
13
  - docs for lono settings
8
14
 
@@ -27,6 +27,9 @@ module Lono
27
27
  autoload :Importer, 'lono/importer'
28
28
  autoload :Inspector, 'lono/inspector'
29
29
  autoload :CurrentRegion, 'lono/current_region'
30
+ autoload :Core, 'lono/core'
31
+
32
+ extend Core
30
33
  end
31
34
 
32
- Lono::Env.setup!
35
+ Lono.setup!
@@ -15,7 +15,6 @@ class Lono::Cfn < Lono::Command
15
15
 
16
16
  class_option :verbose, type: :boolean
17
17
  class_option :noop, type: :boolean
18
- class_option :project_root, desc: "Project folder. Defaults to current directory", default: "."
19
18
  class_option :region, desc: "AWS region"
20
19
 
21
20
  # common to create and update
@@ -9,8 +9,7 @@ class Lono::Cfn::Base
9
9
  @randomize_stack_name = options[:randomize_stack_name]
10
10
  @stack_name = randomize(stack_name)
11
11
  @options = options
12
- @project_root = options[:project_root] || '.'
13
- Lono::ProjectChecker.check(@project_root) unless options[:lono] # already ran checker in lono generate
12
+ Lono::ProjectChecker.check unless options[:lono] # already ran checker in lono generate
14
13
 
15
14
  @template_name = options[:template] || derandomize(@stack_name)
16
15
  @param_name = options[:param] || @template_name
@@ -61,26 +60,19 @@ class Lono::Cfn::Base
61
60
  end
62
61
 
63
62
  def generate_templates
64
- Lono::Template::DSL.new(
65
- project_root: @project_root,
66
- pretty: true
67
- ).run
63
+ Lono::Template::DSL.new(pretty: true).run
68
64
  end
69
65
 
70
66
  def upload_templates
71
67
  # only upload templates if s3.path configured in settings
72
- settings = Lono::Settings.new(@project_root)
68
+ settings = Lono::Settings.new
73
69
  return unless settings.s3_path
74
70
 
75
- Lono::Template::Upload.new(
76
- project_root: @project_root,
77
- pretty: true
78
- ).run
71
+ Lono::Template::Upload.new(pretty: true).run
79
72
  end
80
73
 
81
74
  def generate_params(options={})
82
75
  generator_options = {
83
- project_root: @project_root,
84
76
  path: @param_path,
85
77
  allow_no_file: true
86
78
  }.merge(options)
@@ -111,7 +103,7 @@ class Lono::Cfn::Base
111
103
  # @param_path = params/prod/ecs.txt
112
104
  # => output/params/prod/ecs.json
113
105
  output_param_path = @param_path.sub(/\.txt/, '.json')
114
- output_param_path = "#{@project_root}/output/#{output_param_path}"
106
+ output_param_path = "#{Lono.root}/output/#{output_param_path}"
115
107
  if @options[:param] && !File.exist?(output_param_path)
116
108
  warns << "Parameters file missing: could not find #{output_param_path}"
117
109
  end
@@ -136,9 +128,9 @@ class Lono::Cfn::Base
136
128
  path = case type
137
129
  when :template
138
130
  format = detect_format
139
- "#{@project_root}/output/#{name}.#{format}"
131
+ "#{Lono.root}/output/#{name}.#{format}"
140
132
  when :param
141
- "#{@project_root}/params/#{LONO_ENV}/#{name}.txt"
133
+ "#{Lono.root}/params/#{Lono.env}/#{name}.txt"
142
134
  else
143
135
  raise "hell: dont come here"
144
136
  end
@@ -147,7 +139,7 @@ class Lono::Cfn::Base
147
139
 
148
140
  # Returns String with value of "yml" or "json".
149
141
  def detect_format
150
- formats = Dir.glob("#{@project_root}/templates/**/*").
142
+ formats = Dir.glob("#{Lono.root}/templates/**/*").
151
143
  map { |path| path.sub(/\.erb$/, '') }.
152
144
  map { |path| File.extname(path) }.
153
145
  reject { |s| s.empty? }. # reject ""
@@ -210,7 +202,7 @@ class Lono::Cfn::Base
210
202
  end
211
203
 
212
204
  # otherwise use the settings preference
213
- settings = Lono::Settings.new(@project_root)
205
+ settings = Lono::Settings.new
214
206
  settings.data['randomize_stack_name']
215
207
  end
216
208
 
@@ -5,7 +5,6 @@ class Lono::Cfn::Delete
5
5
  def initialize(stack_name, options={})
6
6
  @stack_name = stack_name
7
7
  @options = options
8
- @project_root = options[:project_root] || '.'
9
8
  end
10
9
 
11
10
  def run
@@ -4,12 +4,11 @@ class Lono::Clean
4
4
  attr_reader :options
5
5
  def initialize(options)
6
6
  @options = options
7
- @project_root = options[:project_root] || '.'
8
7
  end
9
8
 
10
9
  def run
11
10
  puts "Cleaning up"
12
11
  puts "Removing output/ folder"
13
- FileUtils.rm_rf("#{@project_root}/output")
12
+ FileUtils.rm_rf("#{Lono.root}/output")
14
13
  end
15
14
  end
@@ -17,7 +17,6 @@ module Lono
17
17
  desc "import [SOURCE]", "Imports raw CloudFormation template and lono-fies it"
18
18
  long_desc Help.import
19
19
  option :format, type: :string, default: "yaml", desc: "format for the final template"
20
- option :project_root, default: ".", aliases: "-r", desc: "project root"
21
20
  option :casing, default: "underscore", desc: "camelcase or underscore the template name"
22
21
  option :name, default: nil, desc: "final name of downloaded template without extension"
23
22
  def import(source)
@@ -27,7 +26,6 @@ module Lono
27
26
  desc "generate", "Generate both CloudFormation templates and parameters files"
28
27
  Help.generate
29
28
  option :clean, type: :boolean, aliases: "-c", desc: "remove all output files before generating"
30
- option :project_root, default: ".", aliases: "-r", desc: "project root"
31
29
  option :quiet, type: :boolean, aliases: "-q", desc: "silence the output"
32
30
  option :pretty, type: :boolean, default: true, desc: "json pretty the output. only applies with json format"
33
31
  def generate
@@ -0,0 +1,24 @@
1
+ require 'pathname'
2
+
3
+ module Lono
4
+ module Core
5
+ def env
6
+ LONO_ENV
7
+ end
8
+
9
+ def root
10
+ path = ENV['LONO_ROOT'] || '.'
11
+ Pathname.new(path)
12
+ end
13
+
14
+ def setup!
15
+ settings = Lono::Settings.new.data
16
+ map = settings['aws_profile_lono_env_map']
17
+
18
+ lono_env = map[ENV['AWS_PROFILE']] || map['default'] || 'prod' # defaults to prod
19
+ lono_env = ENV['LONO_ENV'] if ENV['LONO_ENV'] # highest precedence
20
+
21
+ Kernel.const_set(:LONO_ENV, lono_env)
22
+ end
23
+ end
24
+ end
@@ -8,7 +8,6 @@ class Lono::Importer
8
8
  @source = source
9
9
  @options = options
10
10
  @format = normalize_format(@options[:format])
11
- @project_root = options[:project_root] || '.'
12
11
  end
13
12
 
14
13
  def run
@@ -39,7 +38,7 @@ class Lono::Importer
39
38
 
40
39
  # Add template definition to config/templates/base/stacks.rb.
41
40
  def add_template_definition
42
- path = "#{@project_root}/config/templates/base/stacks.rb"
41
+ path = "#{Lono.root}/config/templates/base/stacks.rb"
43
42
  lines = File.exist?(path) ? IO.readlines(path) : []
44
43
  new_template_definition = %Q|template "#{template_name}"|
45
44
  unless lines.detect { |l| l.include?(new_template_definition) }
@@ -74,12 +73,12 @@ class Lono::Importer
74
73
  end
75
74
 
76
75
  def params_path
77
- "#{@project_root}/params/base/#{template_name}.txt"
76
+ "#{Lono.root}/params/base/#{template_name}.txt"
78
77
  end
79
78
 
80
79
 
81
80
  def template_path
82
- "#{@project_root}/templates/#{template_name}.#{@format}"
81
+ "#{Lono.root}/templates/#{template_name}.#{@format}"
83
82
  end
84
83
 
85
84
  def template_name
@@ -104,7 +103,7 @@ private
104
103
 
105
104
  def template_data
106
105
  return @template_data if @template_data
107
- template_path = "#{@project_root}/templates/#{template_name}.#{@format}"
106
+ template_path = "#{Lono.root}/templates/#{template_name}.#{@format}"
108
107
  @template_data = YAML.load(IO.read(template_path))
109
108
  end
110
109
 
@@ -8,7 +8,6 @@ class Lono::Inspector < Lono::Command
8
8
 
9
9
  class_option :verbose, type: :boolean
10
10
  class_option :noop, type: :boolean
11
- class_option :project_root, desc: "Project folder. Defaults to current directory", default: "."
12
11
 
13
12
  desc "depends STACK", "Prints dependencies tree of CloudFormation template resources"
14
13
  long_desc Help.depends
@@ -2,7 +2,6 @@ class Lono::Inspector::Base
2
2
  def initialize(stack_name, options)
3
3
  @stack_name = stack_name
4
4
  @options = options
5
- @project_root = options[:project_root] || '.'
6
5
  end
7
6
 
8
7
  def generate_templates
@@ -16,7 +15,7 @@ class Lono::Inspector::Base
16
15
 
17
16
  def data
18
17
  return @data if @data
19
- template_path = "#{@project_root}/output/#{@stack_name}.yml"
18
+ template_path = "#{Lono.root}/output/#{@stack_name}.yml"
20
19
  check_template_exists(template_path)
21
20
  @data = YAML.load(IO.read(template_path))
22
21
  end
@@ -7,7 +7,6 @@ class Lono::Param < Lono::Command
7
7
  class_option :verbose, type: :boolean
8
8
  class_option :noop, type: :boolean
9
9
  class_option :mute, type: :boolean
10
- class_option :project_root, desc: "project root to use", default: '.'
11
10
 
12
11
  desc "generate", "generate all parameter files to json format"
13
12
  long_desc Help.generate
@@ -3,9 +3,8 @@ class Lono::Param::Generator
3
3
 
4
4
  def self.generate_all(options)
5
5
  puts "Generating params files"
6
- project_root = options[:project_root] || '.'
7
6
 
8
- params = param_names(project_root, "base") + param_names(project_root, LONO_ENV)
7
+ params = param_names("base") + param_names(Lono.env)
9
8
  params.uniq.each do |name|
10
9
  param = Lono::Param::Generator.new(name, options)
11
10
  param.generate
@@ -18,19 +17,18 @@ class Lono::Param::Generator
18
17
  # params/base/a.txt params/base/b.txt params/base/c.txt
19
18
  # Returns:
20
19
  # param_names("base") => ["a", "b", "c"]
21
- def self.param_names(project_root, folder)
22
- base_folder = "#{project_root}/params/#{folder}" # Example: "./params/base"
20
+ def self.param_names(folder)
21
+ base_folder = "#{Lono.root}/params/#{folder}" # Example: "./params/base"
23
22
  Dir.glob("#{base_folder}/**/*.txt").map do |path|
24
23
  path.sub("#{base_folder}/", '').sub('.txt','')
25
24
  end
26
25
  end
27
26
 
28
27
  def initialize(name, options)
29
- @_name = "#{LONO_ENV}/#{name}"
28
+ @_name = "#{Lono.env}/#{name}"
30
29
  @_options = options
31
- @_project_root = options[:project_root] || '.'
32
- @_env_path = options[:path] || "#{@_project_root}/params/#{@_name}.txt"
33
- @_base_path = @_env_path.sub("/#{LONO_ENV}/", "/base/")
30
+ @_env_path = options[:path] || "#{Lono.root}/params/#{@_name}.txt"
31
+ @_base_path = @_env_path.sub("/#{Lono.env}/", "/base/")
34
32
  end
35
33
 
36
34
  def generate
@@ -44,7 +42,7 @@ class Lono::Param::Generator
44
42
  write_output(json)
45
43
  # Example: @_name = stag/ecs/private
46
44
  # pretty_name = ecs/private
47
- pretty_name = @_name.sub("#{LONO_ENV}/", '')
45
+ pretty_name = @_name.sub("#{Lono.env}/", '')
48
46
  puts "Params file generated for #{pretty_name} at #{output_path}" unless @_options[:mute]
49
47
  else
50
48
  puts "#{@_base_path} or #{@_env_path} could not be found? Are you sure it exist?"
@@ -179,7 +177,7 @@ class Lono::Param::Generator
179
177
  end
180
178
 
181
179
  def output_path
182
- "#{@_project_root}/output/params/#{@_name}.json".sub(/\.\//,'')
180
+ "#{Lono.root}/output/params/#{@_name}.json".sub(/\.\//,'')
183
181
  end
184
182
 
185
183
  def write_output(json)
@@ -191,7 +189,7 @@ class Lono::Param::Generator
191
189
 
192
190
  def load_variables
193
191
  load_variables_folder("base")
194
- load_variables_folder(LONO_ENV)
192
+ load_variables_folder(Lono.env)
195
193
  end
196
194
 
197
195
  # Load the variables defined in config/variables/* to make available the params/*.txt files
@@ -205,7 +203,7 @@ class Lono::Param::Generator
205
203
  # AmiId=<%= @ami %>
206
204
  #
207
205
  def load_variables_folder(folder)
208
- paths = Dir.glob("#{@_project_root}/config/variables/#{folder}/**/*")
206
+ paths = Dir.glob("#{Lono.root}/config/variables/#{folder}/**/*")
209
207
  paths.select{ |e| File.file? e }.each do |path|
210
208
  instance_eval(IO.read(path))
211
209
  end
@@ -1,12 +1,8 @@
1
1
  class Lono::ProjectChecker
2
2
  # Checks to see command is running in a lono project.
3
3
  # If not, provide a friendly message and exit.
4
- def self.check(project_root)
5
- new(project_root).check
6
- end
7
-
8
- def initialize(project_root)
9
- @project_root = project_root
4
+ def self.check
5
+ new.check
10
6
  end
11
7
 
12
8
  def check
@@ -16,26 +12,34 @@ class Lono::ProjectChecker
16
12
  end
17
13
 
18
14
  def config_folder_exist
19
- unless File.exist?("#{@project_root}/config")
15
+ unless File.exist?("#{Lono.root}/config")
20
16
  puts "The config folder does not exist in this project. Are you sure this is a lono project?"
21
- exit 1
17
+ quit
22
18
  end
23
19
  end
24
20
 
25
21
  def templates_folder_exist
26
- unless File.exist?("#{@project_root}/templates")
22
+ unless File.exist?("#{Lono.root}/templates")
27
23
  puts "The templates folder does not exist in this project. Are you sure this is a lono project?"
28
- exit 1
24
+ quit
29
25
  end
30
26
  end
31
27
 
32
28
  def empty_folders
33
- if Dir["#{@project_root}/config/**/*.rb"].empty?
29
+ if Dir["#{Lono.root}/config/**/*.rb"].empty?
34
30
  puts "The config folder does not contain any lono template definitions."
35
- exit 1
31
+ quit
36
32
  end
37
- if Dir["#{@project_root}/templates/**/*"].empty?
33
+ if Dir["#{Lono.root}/templates/**/*"].empty?
38
34
  puts "The templates folder does not contain any lono template definitions."
35
+ quit
36
+ end
37
+ end
38
+
39
+ def quit
40
+ if ENV['TEST'] == '1'
41
+ raise("Not in lono project")
42
+ else
39
43
  exit 1
40
44
  end
41
45
  end
@@ -1,8 +1,4 @@
1
1
  class Lono::Settings
2
- def initialize(project_root=nil)
3
- @project_root = project_root || '.'
4
- end
5
-
6
2
  # The options from the files get merged with the following precedence:
7
3
  #
8
4
  # current folder - The current folder’s config/settings.yml values take the highest precedence.
@@ -13,7 +9,7 @@ class Lono::Settings
13
9
  def data
14
10
  return @settings_yaml if @settings_yaml
15
11
 
16
- project_file = "#{@project_root}/config/settings.yml"
12
+ project_file = "#{Lono.root}/config/settings.yml"
17
13
  project = File.exist?(project_file) ? YAML.load_file(project_file) : {}
18
14
 
19
15
  user_file = "#{ENV['HOME']}/.lono/settings.yml"
@@ -27,7 +23,7 @@ class Lono::Settings
27
23
 
28
24
  # Examples:
29
25
  #
30
- # Using the LONO_ENV
26
+ # Using the Lono.env
31
27
  # s3:
32
28
  # path:
33
29
  # production: s3://infrastructure-prod/cloudformation
@@ -44,6 +40,6 @@ class Lono::Settings
44
40
  s3_path = s3['path']
45
41
  # s3_path['default'] - key will always exist because of default lono/settings.yml
46
42
  # default value is nil though
47
- s3_path[ENV['AWS_PROFILE']] || s3_path[LONO_ENV] || s3_path['default']
43
+ s3_path[ENV['AWS_PROFILE']] || s3_path[Lono.env] || s3_path['default']
48
44
  end
49
45
  end
@@ -16,14 +16,12 @@ class Lono::Template < Lono::Command
16
16
  desc "generate", "Generate the CloudFormation templates"
17
17
  Help.generate
18
18
  option :clean, type: :boolean, aliases: "-c", desc: "remove all output files before generating"
19
- option :project_root, default: ".", aliases: "-r", desc: "project root"
20
19
  option :pretty, type: :boolean, default: true, desc: "json pretty the output. only applies with json format"
21
20
  def generate
22
21
  DSL.new(options.clone).run
23
22
  end
24
23
 
25
24
  desc "upload", "Uploads templates to configured s3 folder"
26
- option :project_root, default: ".", aliases: "-r", desc: "project root"
27
25
  def upload
28
26
  Upload.new(options.clone).run
29
27
  end
@@ -1,9 +1,8 @@
1
1
  class Lono::Template::DSL
2
2
  def initialize(options={})
3
3
  @options = options
4
- @project_root = @options[:project_root] || '.'
5
- @config_path = "#{@project_root}/config"
6
- Lono::ProjectChecker.check(@project_root)
4
+ @config_path = "#{Lono.root}/config"
5
+ Lono::ProjectChecker.check
7
6
  @templates = []
8
7
  @results = {}
9
8
  @detected_format = nil
@@ -16,12 +15,12 @@ class Lono::Template::DSL
16
15
  end
17
16
 
18
17
  # Instance eval's all the files within each folder under
19
- # config/lono/base and config/lono/[LONO_ENV]
20
- # Base gets base first and then the LONO_ENV configs get evaluate second.
18
+ # config/lono/base and config/lono/[Lono.env]
19
+ # Base gets base first and then the Lono.env configs get evaluate second.
21
20
  # This means the env specific configs override the base configs.
22
21
  def evaluate_templates
23
22
  evaluate_folder("base")
24
- evaluate_folder(LONO_ENV)
23
+ evaluate_folder(Lono.env)
25
24
  @detected_format = detect_format
26
25
  end
27
26
 
@@ -70,7 +69,7 @@ class Lono::Template::DSL
70
69
  # templates files.
71
70
  # All the templates must be of the same format, either all json or all yaml.
72
71
  def detect_format
73
- extensions = Dir.glob("#{@project_root}/templates/**/*").map do |path|
72
+ extensions = Dir.glob("#{Lono.root}/templates/**/*").map do |path|
74
73
  File.extname(path).sub(/^\./,'')
75
74
  end.reject(&:empty?).uniq
76
75
  extensions.include?('yml') ? 'yml' : 'json' # defaults to yml - falls back to json
@@ -88,7 +87,7 @@ class Lono::Template::DSL
88
87
  end
89
88
 
90
89
  def write_output
91
- output_path = "#{@project_root}/output"
90
+ output_path = "#{Lono.root}/output"
92
91
  FileUtils.rm_rf(output_path) if @options[:clean]
93
92
  FileUtils.mkdir(output_path) unless File.exist?(output_path)
94
93
  puts "Generating CloudFormation templates:" unless @options[:quiet]
@@ -149,12 +148,7 @@ class Lono::Template::DSL
149
148
  # This file was generated with lono. Do not edit directly, the changes will be lost.
150
149
  # More info: http://lono.cloud
151
150
  EOS
152
- "#{comment}#{remove_blank_lines(text)}"
153
- end
154
-
155
- # ERB templates leaves blank lines around, remove those lines
156
- def remove_blank_lines(text)
157
- text.split("\n").reject { |l| l.strip == '' }.join("\n") + "\n"
151
+ "#{comment}#{text}"
158
152
  end
159
153
 
160
154
  def ensure_parent_dir(path)
@@ -4,7 +4,7 @@ module Lono::Template::Helpers
4
4
  template_path = "#{template_name}.#{format}"
5
5
 
6
6
  # must have settings.s3_path for this to owrk
7
- settings = Lono::Settings.new(@project_root)
7
+ settings = Lono::Settings.new
8
8
  if settings.s3_path
9
9
  # high jacking Upload for useful s3_https_url method
10
10
  upload = Lono::Template::Upload.new(@_options)
@@ -17,9 +17,8 @@ module Lono::Template::Helpers
17
17
  end
18
18
 
19
19
  def template_params(param_name)
20
- param_path = "params/#{LONO_ENV}/#{param_name}.txt"
20
+ param_path = "params/#{Lono.env}/#{param_name}.txt"
21
21
  generator_options = {
22
- project_root: @_project_root,
23
22
  path: param_path,
24
23
  allow_no_file: true
25
24
  }.merge(@_options)
@@ -28,8 +27,9 @@ module Lono::Template::Helpers
28
27
  generator.params # Returns Array in underscore keys format
29
28
  end
30
29
 
30
+ # Really only useful if using json format
31
31
  def user_data(path, vars={})
32
- path = "#{@_project_root}/templates/user_data/#{path}"
32
+ path = "#{Lono.root}/templates/user_data/#{path}"
33
33
  template = IO.read(path)
34
34
  variables(vars)
35
35
  result = erb_result(path, template)
@@ -92,15 +92,7 @@ module Lono::Template::Helpers
92
92
  variables(vars)
93
93
  result = erb_result(path, template)
94
94
  result = indent(result, options[:indent]) if options[:indent]
95
- if options[:indent]
96
- # Add empty line at beginning because empty lines gets stripped during
97
- # processing anyway. This allows the user to call partial without having
98
- # to put the partial call at very beginning of the line.
99
- # This only should happen if user is using indent option.
100
- ["\n", result].join("\n")
101
- else
102
- result
103
- end
95
+ result
104
96
  end
105
97
 
106
98
  # add indentation
@@ -112,7 +104,7 @@ module Lono::Template::Helpers
112
104
 
113
105
  private
114
106
  def partial_path_for(path)
115
- "#{@_project_root}/templates/partial/#{path}"
107
+ "#{Lono.root}/templates/partial/#{path}"
116
108
  end
117
109
 
118
110
  def auto_add_format(path)
@@ -15,13 +15,12 @@ class Lono::Template::Template
15
15
  @_options = options
16
16
  @_detected_format = options[:detected_format]
17
17
  @_block = block
18
- @_project_root = options[:project_root] || '.'
19
- @_config_path = "#{@_project_root}/config"
18
+ @_config_path = "#{Lono.root}/config"
20
19
  @_source = default_source(name)
21
20
  end
22
21
 
23
22
  def default_source(name)
24
- "#{@_project_root}/templates/#{name}.#{@_detected_format}" # defaults to name, source method overrides
23
+ "#{Lono.root}/templates/#{name}.#{@_detected_format}" # defaults to name, source method overrides
25
24
  end
26
25
 
27
26
  def build
@@ -34,7 +33,7 @@ class Lono::Template::Template
34
33
 
35
34
  def load_variables
36
35
  load_variables_folder("base")
37
- load_variables_folder(LONO_ENV)
36
+ load_variables_folder(Lono.env)
38
37
  end
39
38
 
40
39
  # Load the variables defined in config/variables/* to make available in the
@@ -62,7 +61,7 @@ class Lono::Template::Template
62
61
 
63
62
  # Load custom helper methods from the user's infra repo
64
63
  def load_custom_helpers
65
- Dir.glob("#{@_project_root}/helpers/**/*_helper.rb").each do |path|
64
+ Dir.glob("#{Lono.root}/helpers/**/*_helper.rb").each do |path|
66
65
  filename = path.sub(%r{.*/},'').sub('.rb','')
67
66
  module_name = filename.classify
68
67
 
@@ -72,7 +71,7 @@ class Lono::Template::Template
72
71
  end
73
72
 
74
73
  def source(path)
75
- @_source = path[0..0] == '/' ? path : "#{@_project_root}/templates/#{path}"
74
+ @_source = path[0..0] == '/' ? path : "#{Lono.root}/templates/#{path}"
76
75
  @_source += ".#{@_detected_format}"
77
76
  end
78
77
 
@@ -8,7 +8,6 @@ class Lono::Template::Upload
8
8
 
9
9
  def initialize(options={})
10
10
  @options = options
11
- @project_root = options[:project_root] || '.'
12
11
  @checksums = {}
13
12
  end
14
13
 
@@ -16,7 +15,7 @@ class Lono::Template::Upload
16
15
  ensure_s3_setup!
17
16
  load_checksums!
18
17
 
19
- paths = Dir.glob("#{@project_root}/output/**/*")
18
+ paths = Dir.glob("#{Lono.root}/output/**/*")
20
19
  paths.reject { |p| p =~ %r{output/params} }.
21
20
  select { |p| File.file?(p) }.each do |path|
22
21
  upload(path)
@@ -36,7 +35,7 @@ class Lono::Template::Upload
36
35
  def load_checksums!
37
36
  return if @options[:noop]
38
37
 
39
- prefix = "#{s3_path}/#{LONO_ENV}" # s3://s3-bucket-and-path-from-settings/prod
38
+ prefix = "#{s3_path}/#{Lono.env}" # s3://s3-bucket-and-path-from-settings/prod
40
39
  resp = s3.list_objects(bucket: s3_bucket, prefix: prefix)
41
40
  resp.contents.each do |object|
42
41
  # key does not include the bucket name
@@ -56,7 +55,7 @@ class Lono::Template::Upload
56
55
 
57
56
  def upload(path)
58
57
  pretty_path = path.sub(/^\.\//, '')
59
- key = "#{s3_path}/#{LONO_ENV}/#{pretty_path.sub(/^output\//,'')}"
58
+ key = "#{s3_path}/#{Lono.env}/#{pretty_path.sub(/^output\//,'')}"
60
59
  s3_full_path = "s3://#{s3_bucket}/#{key}"
61
60
 
62
61
  local_checksum = Digest::MD5.hexdigest(IO.read(path))
@@ -89,25 +88,27 @@ class Lono::Template::Upload
89
88
  # first convert the local path to the path format that is stored in @checksums keys
90
89
  # ./output/docker.yml => cloudformation-templates/stag/docker.yml
91
90
  pretty_path = path.sub(/^\.\//, '')
92
- key = "#{s3_path}/#{LONO_ENV}/#{pretty_path.sub(/^output\//,'')}"
91
+ key = "#{s3_path}/#{Lono.env}/#{pretty_path.sub(/^output\//,'')}"
93
92
  @checksums[key]
94
93
  end
95
94
 
96
95
  # https://s3.amazonaws.com/mybucket/cloudformation-templates/prod/parent.yml
97
96
  def s3_https_url(template_path)
98
97
  ensure_s3_setup!
99
- "https://s3.amazonaws.com/#{s3_bucket}/#{s3_path}/#{LONO_ENV}/#{template_path}"
98
+ "https://s3.amazonaws.com/#{s3_bucket}/#{s3_path}/#{Lono.env}/#{template_path}"
100
99
  end
101
100
 
102
101
  # Example:
103
102
  # s3_bucket('s3://mybucket/templates/storage/path') => mybucket
104
103
  def s3_bucket
104
+ return '' if @options[:noop] # to get spec passing
105
105
  @s3_full_path.sub('s3://','').split('/').first
106
106
  end
107
107
 
108
108
  # Example:
109
109
  # s3_bucket('s3://mybucket/templates/storage/path') => templates/storage/path
110
110
  def s3_path
111
+ return '' if @options[:noop] # to get spec passing
111
112
  @s3_full_path.sub('s3://','').split('/')[1..-1].join('/')
112
113
  end
113
114
 
@@ -115,7 +116,7 @@ class Lono::Template::Upload
115
116
  def ensure_s3_setup!
116
117
  return if @options[:noop]
117
118
 
118
- settings = Lono::Settings.new(@project_root)
119
+ settings = Lono::Settings.new
119
120
  if settings.s3_path
120
121
  @s3_full_path = settings.s3_path
121
122
  else
@@ -1,3 +1,3 @@
1
1
  module Lono
2
- VERSION = "3.4.1"
2
+ VERSION = "3.5.0"
3
3
  end
@@ -1,3 +1,3 @@
1
1
  # this file is just in here to get the lono-cfn spec to pass
2
2
 
3
- template "aws-waf-security-automations"
3
+ template "my-stack"
@@ -1,38 +1,39 @@
1
- require_relative "../../spec_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Lono::Cfn do
4
4
  before(:all) do
5
- @args = "--noop --project-root spec/fixtures/my_project"
5
+ @env = "LONO_ROOT=#{ENV['LONO_ROOT']}"
6
+ @args = "--noop"
6
7
  end
7
8
 
8
9
  describe "lono cfn" do
9
10
  it "create stack" do
10
- out = execute("bin/lono cfn create my-stack #{@args}")
11
+ out = execute("#{@env} bin/lono cfn create my-stack #{@args}")
11
12
  expect(out).to include("Creating")
12
13
  end
13
14
 
14
15
  it "update stack" do
15
- out = execute("bin/lono cfn update my-stack #{@args}")
16
+ out = execute("#{@env} bin/lono cfn update my-stack #{@args}")
16
17
  expect(out).to include("Updating")
17
18
  end
18
19
 
19
20
  it "delete stack" do
20
- out = execute("bin/lono cfn delete my-stack #{@args}")
21
+ out = execute("#{@env} bin/lono cfn delete my-stack #{@args}")
21
22
  expect(out).to include("Deleted")
22
23
  end
23
24
 
24
25
  it "preview stack" do
25
- out = execute("bin/lono cfn preview my-stack #{@args}")
26
+ out = execute("#{@env} bin/lono cfn preview my-stack #{@args}")
26
27
  expect(out).to include("CloudFormation preview")
27
28
  end
28
29
 
29
30
  it "diff stack" do
30
- out = execute("bin/lono cfn diff my-stack #{@args}")
31
+ out = execute("#{@env} bin/lono cfn diff my-stack #{@args}")
31
32
  expect(out).to include("diff")
32
33
  end
33
34
 
34
35
  it "download stack" do
35
- out = execute("bin/lono cfn download my-stack #{@args}")
36
+ out = execute("#{@env} bin/lono cfn download my-stack #{@args}")
36
37
  expect(out).to include("Download")
37
38
  end
38
39
  end
@@ -2,7 +2,7 @@ require_relative "../../spec_helper"
2
2
 
3
3
  describe Lono::Inspector do
4
4
  before(:all) do
5
- @args = "--noop --project-root spec/fixtures/my_project"
5
+ @args = "--noop"
6
6
  end
7
7
 
8
8
  describe "lono inspect" do
@@ -1,11 +1,13 @@
1
- require_relative "../../spec_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Lono::New do
4
4
  before(:each) do
5
- @project_root = File.expand_path("../../../../tmp/lono_project", __FILE__)
5
+ @saved_root = ENV['LONO_ROOT']
6
+ ENV['LONO_ROOT'] = ENV['TMP_LONO_ROOT']
6
7
  end
7
8
  after(:each) do
8
- FileUtils.rm_rf(@project_root) unless ENV['KEEP_TMP_PROJECT']
9
+ ENV['LONO_ROOT'] = @saved_root
10
+ FileUtils.rm_rf(ENV['TMP_LONO_ROOT']) unless ENV['KEEP_TMP_PROJECT']
9
11
  end
10
12
 
11
13
  context "json starter project" do
@@ -14,18 +16,17 @@ describe Lono::New do
14
16
  force: true,
15
17
  quiet: true,
16
18
  format: 'json',
17
- project_root: @project_root
19
+ project_root: ENV['TMP_LONO_ROOT'],
18
20
  )
19
21
  new_project.run
20
22
  end
21
23
 
22
24
  it "should be able to lono generate" do
23
25
  dsl = Lono::Template::DSL.new(
24
- project_root: @project_root,
25
26
  quiet: true
26
27
  )
27
28
  dsl.run
28
- generated = File.exist?("#{@project_root}/output/blog-web.json")
29
+ generated = File.exist?("#{Lono.root}/output/blog-web.json")
29
30
  expect(generated).to be true
30
31
  end
31
32
  end
@@ -36,18 +37,17 @@ describe Lono::New do
36
37
  force: true,
37
38
  quiet: true,
38
39
  format: 'yaml',
39
- project_root: @project_root
40
+ project_root: ENV['TMP_LONO_ROOT'],
40
41
  )
41
42
  new_project.run
42
43
  end
43
44
 
44
45
  it "should be able to lono generate" do
45
46
  dsl = Lono::Template::DSL.new(
46
- project_root: @project_root,
47
47
  quiet: true
48
48
  )
49
49
  dsl.run
50
- generated = File.exist?("#{@project_root}/output/blog-web.yml")
50
+ generated = File.exist?("#{Lono.root}/output/blog-web.yml")
51
51
  expect(generated).to be true
52
52
  end
53
53
  end
@@ -2,11 +2,14 @@ require_relative "../../../spec_helper"
2
2
 
3
3
  describe Lono::Param::Generator do
4
4
  def generate(project_root)
5
+ @saved_root = ENV['LONO_ROOT']
6
+ ENV['LONO_ROOT'] = project_root
5
7
  param = Lono::Param::Generator.new("network",
6
- project_root: project_root,
7
8
  mute: true
8
9
  )
9
10
  json = param.generate
11
+ ENV['LONO_ROOT'] = @saved_root
12
+
10
13
  data = JSON.load(json)
11
14
  param_value = data.first["ParameterValue"]
12
15
  end
@@ -2,7 +2,7 @@ require_relative "../../spec_helper"
2
2
 
3
3
  describe Lono::Param do
4
4
  before(:all) do
5
- @args = "--project-root spec/fixtures/my_project"
5
+ @args = ""
6
6
  end
7
7
 
8
8
  describe "lono param" do
@@ -1,11 +1,13 @@
1
- require_relative "../../../spec_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Lono::Template::DSL do
4
4
  before(:each) do
5
- @project_root = File.expand_path("../../../../tmp/lono_project", __FILE__)
5
+ @saved_root = ENV['LONO_ROOT']
6
+ ENV['LONO_ROOT'] = ENV['TMP_LONO_ROOT']
6
7
  end
7
8
  after(:each) do
8
- FileUtils.rm_rf(@project_root) unless ENV['KEEP_TMP_PROJECT']
9
+ ENV['LONO_ROOT'] = @saved_root
10
+ FileUtils.rm_rf(ENV['TMP_LONO_ROOT']) unless ENV['KEEP_TMP_PROJECT']
9
11
  end
10
12
 
11
13
  context "json starter project" do
@@ -14,14 +16,13 @@ describe Lono::Template::DSL do
14
16
  force: true,
15
17
  quiet: true,
16
18
  format: 'json',
17
- project_root: @project_root
19
+ project_root: ENV['TMP_LONO_ROOT'],
18
20
  )
19
21
  new_project.run
20
22
  end
21
23
 
22
24
  it "json" do
23
25
  dsl = Lono::Template::DSL.new(
24
- project_root: @project_root,
25
26
  quiet: true
26
27
  )
27
28
  dsl.evaluate_templates # run the dependent instance_eval and load_subfoler so @templates is assigned
@@ -36,14 +37,13 @@ describe Lono::Template::DSL do
36
37
  force: true,
37
38
  quiet: true,
38
39
  format: 'yaml',
39
- project_root: @project_root
40
+ project_root: ENV['TMP_LONO_ROOT'],
40
41
  )
41
42
  new_project.run
42
43
  end
43
44
 
44
45
  it "yaml" do
45
46
  dsl = Lono::Template::DSL.new(
46
- project_root: @project_root,
47
47
  quiet: true
48
48
  )
49
49
  dsl.evaluate_templates # run the dependent instance_eval and load_subfoler so @templates is assigned
@@ -69,32 +69,31 @@ describe Lono::Template::DSL do
69
69
  force: true,
70
70
  quiet: true,
71
71
  format: 'json',
72
- project_root: @project_root
72
+ project_root: ENV['TMP_LONO_ROOT'],
73
73
  )
74
74
  new_project.run
75
75
 
76
76
  dsl = Lono::Template::DSL.new(
77
- project_root: @project_root,
78
77
  quiet: true
79
78
  )
80
79
  dsl.run
81
80
  end
82
81
 
83
82
  it "should generate cloudformation template" do
84
- raw = IO.read("#{@project_root}/output/api-web.json")
83
+ raw = IO.read("#{Lono.root}/output/api-web.json")
85
84
  json = JSON.load(raw)
86
85
  expect(json['Description']).to eq "Api Stack"
87
86
  expect(json['Mappings']['AWSRegionArch2AMI']['us-east-1']['64']).to eq 'ami-123'
88
87
  end
89
88
 
90
89
  it "should make trailing options pass to the partial helper available as instance variables" do
91
- raw = IO.read("#{@project_root}/output/api-web.json")
90
+ raw = IO.read("#{Lono.root}/output/api-web.json")
92
91
  json = JSON.load(raw)
93
92
  expect(json['Resources']['HostRecord']['Properties']['Comment']).to eq 'DNS name for mydomain.com'
94
93
  end
95
94
 
96
95
  it "should generate user data with variables" do
97
- raw = IO.read("#{@project_root}/output/api-redis.json")
96
+ raw = IO.read("#{Lono.root}/output/api-redis.json")
98
97
  json = JSON.load(raw)
99
98
  expect(json['Description']).to eq "Api redis"
100
99
  user_data = json['Resources']['server']['Properties']['UserData']['Fn::Base64']['Fn::Join'][1]
@@ -102,7 +101,7 @@ describe Lono::Template::DSL do
102
101
  end
103
102
 
104
103
  it "should include multiple user_data scripts" do
105
- raw = IO.read("#{@project_root}/output/api-redis.json")
104
+ raw = IO.read("#{Lono.root}/output/api-redis.json")
106
105
  json = JSON.load(raw)
107
106
  expect(json['Description']).to eq "Api redis"
108
107
  user_data = json['Resources']['server']['Properties']['UserData']['Fn::Base64']['Fn::Join'][1]
@@ -110,7 +109,7 @@ describe Lono::Template::DSL do
110
109
  end
111
110
 
112
111
  it "should generate db template" do
113
- raw = IO.read("#{@project_root}/output/api-redis.json")
112
+ raw = IO.read("#{Lono.root}/output/api-redis.json")
114
113
  json = JSON.load(raw)
115
114
  expect(json['Description']).to eq "Api redis"
116
115
  user_data = json['Resources']['server']['Properties']['UserData']['Fn::Base64']['Fn::Join'][1]
@@ -161,7 +160,7 @@ describe Lono::Template::DSL do
161
160
  end
162
161
 
163
162
  it "should not transform user_data ruby scripts" do
164
- raw = IO.read("#{@project_root}/output/api-worker.json")
163
+ raw = IO.read("#{Lono.root}/output/api-worker.json")
165
164
  json = JSON.load(raw)
166
165
  user_data = json['Resources']['LaunchConfig']['Properties']['UserData']['Fn::Base64']['Fn::Join'][1]
167
166
  expect(user_data).to include(%Q|ec2.tags.create(ec2.instances[my_instance_id], "Name", {value: Facter.hostname})\n|)
@@ -169,12 +168,12 @@ describe Lono::Template::DSL do
169
168
  end
170
169
 
171
170
  it "should create parent folders for parent/db-stack.json" do
172
- directory_created = File.exist?("#{@project_root}/output/parent")
171
+ directory_created = File.exist?("#{Lono.root}/output/parent")
173
172
  expect(directory_created).to be true
174
173
  end
175
174
 
176
175
  it "task should generate CloudFormation templates" do
177
- raw = IO.read("#{@project_root}/output/api-web.json")
176
+ raw = IO.read("#{Lono.root}/output/api-web.json")
178
177
  json = JSON.load(raw)
179
178
  expect(json['Description']).to eq "Api Stack"
180
179
  expect(json['Mappings']['AWSRegionArch2AMI']['us-east-1']['64']).to eq 'ami-123'
@@ -1,17 +1,14 @@
1
- require_relative "../../spec_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Lono do
4
4
  before(:each) do
5
+ @env = "LONO_ROOT=tmp/foo"
5
6
  lono_bin = File.expand_path("../../../../bin/lono", __FILE__)
6
- @project_root = File.expand_path("../../../../tmp/lono_project", __FILE__)
7
- dir = File.dirname(@project_root)
8
- name = File.basename(@project_root)
9
- FileUtils.mkdir(dir) unless File.exist?(dir)
10
- execute("cd #{dir} && #{lono_bin} new #{name} -f -q --format json")
7
+ execute("cd tmp && #{lono_bin} new foo -f -q --format json")
11
8
  end
12
9
 
13
10
  after(:each) do
14
- FileUtils.rm_rf(@project_root) unless ENV['KEEP_TMP_PROJECT']
11
+ # FileUtils.rm_rf("foo") unless ENV['KEEP_TMP_PROJECT']
15
12
  end
16
13
 
17
14
  describe "bashify" do
@@ -24,12 +21,12 @@ describe Lono do
24
21
 
25
22
  describe "cli specs" do
26
23
  it "should generate templates" do
27
- out = execute("./bin/lono template generate -c --project-root #{@project_root}")
24
+ out = execute("#{@env} ./bin/lono template generate -c")
28
25
  expect(out).to match /Generating CloudFormation templates/
29
26
  end
30
27
 
31
- it "should generate templates" do
32
- out = execute("./bin/lono template upload --project-root #{@project_root} --noop")
28
+ it "should upload templates" do
29
+ out = execute("#{@env} ./bin/lono template upload --noop")
33
30
  expect(out).to match /Templates uploaded to s3/
34
31
  end
35
32
  end
@@ -3,20 +3,24 @@ require_relative "../spec_helper"
3
3
  describe Lono do
4
4
  describe "lono" do
5
5
  before(:each) do
6
- @args = "--project-root spec/fixtures/my_project"
6
+ @env = "LONO_ROOT=#{ENV['LONO_ROOT']}"
7
7
  end
8
8
  after(:each) do
9
9
  FileUtils.rm_rf("spec/fixtures/my_project/params/base")
10
10
  end
11
11
 
12
12
  it "generate should build templates" do
13
- out = execute("./bin/lono generate #{@args}")
13
+ out = execute("#{@env} bin/lono generate")
14
14
  expect(out).to match /Generating both CloudFormation template and parameter/
15
15
  end
16
16
 
17
17
  it "import should download template" do
18
- out = execute("./bin/lono import spec/fixtures/raw_templates/aws-waf-security-automations.template #{@args}")
18
+ path = "spec/fixtures/my_project/config/templates/base/stacks.rb"
19
+ backup = "spec/fixtures/my_project/config/templates/base/stacks.rb.bak"
20
+ FileUtils.cp(path, backup)
21
+ out = execute("#{@env} bin/lono import spec/fixtures/raw_templates/aws-waf-security-automations.template #{@args}")
19
22
  expect(out).to match /Imported raw CloudFormation template/
23
+ FileUtils.mv(backup, path)
20
24
  end
21
25
  end
22
26
  end
@@ -1,6 +1,8 @@
1
1
  ENV['TEST'] = '1'
2
2
  # Ensures aws api never called. Fixture home folder does not contain ~/.aws/credentails
3
3
  ENV['HOME'] = "spec/fixtures/home"
4
+ ENV['LONO_ROOT'] = "spec/fixtures/my_project" # this gets kept
5
+ ENV['TMP_LONO_ROOT'] = "./tmp/lono_project" # need the period for the load_custom_helpers require , unsure if I should adjust the LOAD_PATH
4
6
 
5
7
  require "pp"
6
8
  require "byebug"
@@ -12,8 +14,8 @@ $root = File.expand_path('../../', __FILE__)
12
14
 
13
15
  require "#{$root}/lib/lono"
14
16
 
15
- require 'coveralls'
16
- Coveralls.wear!
17
+ # require 'coveralls'
18
+ # Coveralls.wear!
17
19
 
18
20
  module Helpers
19
21
  def execute(cmd)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lono
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.1
4
+ version: 3.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-31 00:00:00.000000000 Z
11
+ date: 2018-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -285,9 +285,9 @@ files:
285
285
  - lib/lono/clean.rb
286
286
  - lib/lono/cli.rb
287
287
  - lib/lono/command.rb
288
+ - lib/lono/core.rb
288
289
  - lib/lono/current_region.rb
289
290
  - lib/lono/default/settings.yml
290
- - lib/lono/env.rb
291
291
  - lib/lono/help.rb
292
292
  - lib/lono/importer.rb
293
293
  - lib/lono/inspector.rb
@@ -350,7 +350,7 @@ files:
350
350
  - spec/fixtures/my_project/config/templates/base/stacks.rb
351
351
  - spec/fixtures/my_project/params/my-stack.txt
352
352
  - spec/fixtures/my_project/templates/.gitkeep
353
- - spec/fixtures/my_project/templates/my-stack.yml.erb
353
+ - spec/fixtures/my_project/templates/my-stack.yml
354
354
  - spec/fixtures/params/baseonly/params/base/network.txt
355
355
  - spec/fixtures/params/envonly/params/prod/network.txt
356
356
  - spec/fixtures/params/overlay/params/base/network.txt
@@ -409,7 +409,7 @@ test_files:
409
409
  - spec/fixtures/my_project/config/templates/base/stacks.rb
410
410
  - spec/fixtures/my_project/params/my-stack.txt
411
411
  - spec/fixtures/my_project/templates/.gitkeep
412
- - spec/fixtures/my_project/templates/my-stack.yml.erb
412
+ - spec/fixtures/my_project/templates/my-stack.yml
413
413
  - spec/fixtures/params/baseonly/params/base/network.txt
414
414
  - spec/fixtures/params/envonly/params/prod/network.txt
415
415
  - spec/fixtures/params/overlay/params/base/network.txt
@@ -1,11 +0,0 @@
1
- class Lono::Env
2
- def self.setup!(project_root='.')
3
- settings = Lono::Settings.new(project_root).data
4
- map = settings['aws_profile_lono_env_map']
5
-
6
- lono_env = map[ENV['AWS_PROFILE']] || map['default'] || 'prod' # defaults to prod
7
- lono_env = ENV['LONO_ENV'] if ENV['LONO_ENV'] # highest precedence
8
-
9
- Kernel.const_set(:LONO_ENV, lono_env)
10
- end
11
- end