lono 4.2.4 → 4.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/lono.rb +2 -3
- data/lib/lono/cfn/base.rb +6 -6
- data/lib/lono/cfn/create.rb +3 -3
- data/lib/lono/cfn/current.rb +1 -1
- data/lib/lono/cfn/delete.rb +3 -3
- data/lib/lono/cfn/diff.rb +1 -1
- data/lib/lono/cfn/preview.rb +4 -4
- data/lib/lono/cfn/status.rb +8 -8
- data/lib/lono/cfn/util.rb +2 -2
- data/lib/lono/file_uploader.rb +2 -2
- data/lib/lono/help/cfn/diff.md +1 -1
- data/lib/lono/importer.rb +2 -2
- data/lib/lono/inspector/base.rb +1 -1
- data/lib/lono/inspector/summary.rb +1 -1
- data/lib/lono/project_checker.rb +2 -2
- data/lib/lono/script/upload.rb +1 -1
- data/lib/lono/sequence.rb +1 -2
- data/lib/lono/setting.rb +1 -1
- data/lib/lono/template/dsl.rb +5 -5
- data/lib/lono/template/helper.rb +4 -4
- data/lib/lono/template/template.rb +1 -1
- data/lib/lono/template/upload.rb +4 -4
- data/lib/lono/user_data.rb +1 -1
- data/lib/lono/version.rb +1 -1
- data/lono.gemspec +4 -4
- metadata +14 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ecbb81a1de6ff6dd2943f60b25d1f4ebc7b3030a4faac11ff767da8a15bf14b
|
4
|
+
data.tar.gz: 94fe82c593537d7f7168144c4a4f76ce7ba143b75fc321cef3c14da5d05bc3e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8a5dc575759fc1a88f2bb50404f234cdb74ccc862e588e23e170e886c340a38c4092b54fdc9ca6c17fa09a75f8db0136cce426afd9c9d7afc7692f36792a4bc
|
7
|
+
data.tar.gz: 8534f43632d384578a4d1ab8bb5e0da71a34c3885d1692ceb1c5d7693602f5a9e0539f7a8eb8230d0eed6eedb0e25719a4c67c3866b1c090a28bc495caac3608
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,9 @@
|
|
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
|
+
## [4.2.5]
|
7
|
+
- use rainbow gem for terminal colors
|
8
|
+
|
6
9
|
## [4.2.4]
|
7
10
|
- bin/release wrapper script
|
8
11
|
|
data/lib/lono.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
require 'active_support/core_ext/string'
|
2
|
-
require 'colorize'
|
3
2
|
require 'fileutils'
|
4
3
|
require 'json'
|
5
|
-
require '
|
4
|
+
require 'memoist'
|
5
|
+
require 'rainbow/ext/string'
|
6
6
|
require 'render_me_pretty'
|
7
7
|
require 'yaml'
|
8
|
-
require 'memoist'
|
9
8
|
|
10
9
|
# vendor because need https://github.com/futurechimp/plissken/pull/6 to be merged
|
11
10
|
$:.unshift(File.expand_path("../../vendor/plissken/lib", __FILE__))
|
data/lib/lono/cfn/base.rb
CHANGED
@@ -25,7 +25,7 @@ class Lono::Cfn::Base
|
|
25
25
|
def starting_message
|
26
26
|
action = self.class.to_s.split('::').last
|
27
27
|
action = action[0..-2] + 'ing' # create => creating
|
28
|
-
puts "#{action} #{@stack_name.
|
28
|
+
puts "#{action} #{@stack_name.color(:green)} stack..."
|
29
29
|
end
|
30
30
|
|
31
31
|
def run
|
@@ -38,7 +38,7 @@ class Lono::Cfn::Base
|
|
38
38
|
confirm = prompt_for_iam(capabilities)
|
39
39
|
if confirm =~ /^y/
|
40
40
|
@options.merge!(capabilities: [capabilities])
|
41
|
-
puts "Re-running: #{command_with_iam(capabilities).
|
41
|
+
puts "Re-running: #{command_with_iam(capabilities).color(:green)}"
|
42
42
|
retry
|
43
43
|
else
|
44
44
|
puts "Exited"
|
@@ -47,7 +47,7 @@ class Lono::Cfn::Base
|
|
47
47
|
end
|
48
48
|
|
49
49
|
return unless @options[:wait]
|
50
|
-
status.wait
|
50
|
+
status.wait unless @options[:noop]
|
51
51
|
end
|
52
52
|
|
53
53
|
def status
|
@@ -119,12 +119,12 @@ class Lono::Cfn::Base
|
|
119
119
|
errors, warns = check_files
|
120
120
|
unless errors.empty?
|
121
121
|
puts "Please double check the command you ran. There were some errors."
|
122
|
-
puts "ERROR: #{errors.join("\n")}".
|
122
|
+
puts "ERROR: #{errors.join("\n")}".color(:red)
|
123
123
|
exit
|
124
124
|
end
|
125
125
|
unless warns.empty?
|
126
126
|
puts "Please double check the command you ran. There were some warnings."
|
127
|
-
puts "WARN: #{warns.join("\n")}".
|
127
|
+
puts "WARN: #{warns.join("\n")}".color(:yellow)
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
@@ -185,7 +185,7 @@ class Lono::Cfn::Base
|
|
185
185
|
return false if @options[:noop]
|
186
186
|
|
187
187
|
unless status =~ /_COMPLETE$/
|
188
|
-
puts "Cannot create a change set for the stack because the #{@stack_name} is not in an updatable state. Stack status: #{status}".
|
188
|
+
puts "Cannot create a change set for the stack because the #{@stack_name} is not in an updatable state. Stack status: #{status}".color(:red)
|
189
189
|
quit(1)
|
190
190
|
end
|
191
191
|
end
|
data/lib/lono/cfn/create.rb
CHANGED
@@ -8,19 +8,19 @@ class Lono::Cfn::Create < Lono::Cfn::Base
|
|
8
8
|
|
9
9
|
# aws cloudformation create-stack --stack-name prod-hi-123456789 --parameters file://output/params/prod-hi-123456789.json --template-body file://output/prod-hi.json
|
10
10
|
def create_stack(params)
|
11
|
-
message = "Creating #{@stack_name.
|
11
|
+
message = "Creating #{@stack_name.color(:green)} stack."
|
12
12
|
if @options[:noop]
|
13
13
|
puts "NOOP #{message}"
|
14
14
|
return
|
15
15
|
end
|
16
16
|
|
17
17
|
if stack_exists?(@stack_name)
|
18
|
-
puts "Cannot create #{@stack_name.
|
18
|
+
puts "Cannot create #{@stack_name.color(:green)} stack because it already exists.".color(:red)
|
19
19
|
return
|
20
20
|
end
|
21
21
|
|
22
22
|
unless File.exist?(@template_path)
|
23
|
-
puts "Cannot create #{@stack_name.
|
23
|
+
puts "Cannot create #{@stack_name.color(:green)} template not found: #{@template_path}."
|
24
24
|
return
|
25
25
|
end
|
26
26
|
|
data/lib/lono/cfn/current.rb
CHANGED
data/lib/lono/cfn/delete.rb
CHANGED
@@ -18,15 +18,15 @@ class Lono::Cfn::Delete
|
|
18
18
|
cfn.delete_stack(stack_name: @stack_name)
|
19
19
|
puts message
|
20
20
|
else
|
21
|
-
puts "#{@stack_name.inspect} stack does not exist".
|
21
|
+
puts "#{@stack_name.inspect} stack does not exist".color(:red)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
25
|
return unless @options[:wait]
|
26
26
|
start_time = Time.now
|
27
|
-
status.wait
|
27
|
+
status.wait unless @options[:noop]
|
28
28
|
took = Time.now - start_time
|
29
|
-
puts "Time took for stack deletion: #{status.pretty_time(took).green}."
|
29
|
+
puts "Time took for stack deletion: #{status.pretty_time(took).color(:green)}."
|
30
30
|
end
|
31
31
|
|
32
32
|
def status
|
data/lib/lono/cfn/diff.rb
CHANGED
@@ -3,7 +3,7 @@ class Lono::Cfn::Diff < Lono::Cfn::Base
|
|
3
3
|
|
4
4
|
def run
|
5
5
|
unless stack_exists?(@stack_name)
|
6
|
-
puts "WARN: Cannot create a diff for the stack because the #{@stack_name} does not exists.".
|
6
|
+
puts "WARN: Cannot create a diff for the stack because the #{@stack_name} does not exists.".color(:yellow)
|
7
7
|
return
|
8
8
|
end
|
9
9
|
|
data/lib/lono/cfn/preview.rb
CHANGED
@@ -17,7 +17,7 @@ class Lono::Cfn::Preview < Lono::Cfn::Base
|
|
17
17
|
|
18
18
|
def create_change_set(params)
|
19
19
|
unless stack_exists?(@stack_name)
|
20
|
-
puts "WARN: Cannot create a change set for the stack because the #{@stack_name} does not exists.".
|
20
|
+
puts "WARN: Cannot create a change set for the stack because the #{@stack_name} does not exists.".color(:yellow)
|
21
21
|
return false
|
22
22
|
end
|
23
23
|
exit_unless_updatable!(stack_status(@stack_name))
|
@@ -44,7 +44,7 @@ class Lono::Cfn::Preview < Lono::Cfn::Base
|
|
44
44
|
raise if ENV['FULL_BACKTRACE']
|
45
45
|
|
46
46
|
if e.message =~ /^Parameters: / || e.message =~ /^Template error: /
|
47
|
-
puts "Error creating CloudFormation preview because invalid CloudFormation parameters. Full error message:".
|
47
|
+
puts "Error creating CloudFormation preview because invalid CloudFormation parameters. Full error message:".color(:red)
|
48
48
|
puts e.message
|
49
49
|
puts "For full backtrace run command again with FULL_BACKTRACE=1"
|
50
50
|
quit(1)
|
@@ -73,7 +73,7 @@ class Lono::Cfn::Preview < Lono::Cfn::Base
|
|
73
73
|
display_change(change)
|
74
74
|
end
|
75
75
|
when "FAILED"
|
76
|
-
puts "Fail to create a CloudFormation preview for '#{@stack_name}' stack update. Reason:".
|
76
|
+
puts "Fail to create a CloudFormation preview for '#{@stack_name}' stack update. Reason:".color(:red)
|
77
77
|
puts change_set.status_reason
|
78
78
|
quit(1)
|
79
79
|
else
|
@@ -131,7 +131,7 @@ private
|
|
131
131
|
|
132
132
|
colors = { Remove: :red, Add: :green, Modify: :yellow }
|
133
133
|
action = change.resource_change.action.to_sym
|
134
|
-
message = message.
|
134
|
+
message = message.color(colors[action]) if colors.has_key?(action)
|
135
135
|
puts message
|
136
136
|
end
|
137
137
|
|
data/lib/lono/cfn/status.rb
CHANGED
@@ -12,14 +12,14 @@ class Lono::Cfn
|
|
12
12
|
# used for the lono cfn status command
|
13
13
|
def run
|
14
14
|
unless stack_exists?(@stack_name)
|
15
|
-
puts "The stack #{@stack_name.
|
15
|
+
puts "The stack #{@stack_name.color(:green)} does not exist."
|
16
16
|
return
|
17
17
|
end
|
18
18
|
|
19
19
|
resp = cfn.describe_stacks(stack_name: @stack_name)
|
20
20
|
stack = resp.stacks.first
|
21
21
|
|
22
|
-
puts "The current status for the stack #{@stack_name.
|
22
|
+
puts "The current status for the stack #{@stack_name.color(:green)} is #{stack.stack_status.color(:green)}"
|
23
23
|
if stack.stack_status =~ /_IN_PROGRESS$/
|
24
24
|
puts "Stack events (tailing):"
|
25
25
|
# tail all events until done
|
@@ -60,19 +60,19 @@ class Lono::Cfn
|
|
60
60
|
end
|
61
61
|
|
62
62
|
if last_event_status =~ /_FAILED/
|
63
|
-
puts "Stack failed: #{last_event_status}".
|
64
|
-
puts "Stack reason #{@events[0]["resource_status_reason"]}".
|
63
|
+
puts "Stack failed: #{last_event_status}".color(:red)
|
64
|
+
puts "Stack reason #{@events[0]["resource_status_reason"]}".color(:red)
|
65
65
|
elsif last_event_status =~ /_ROLLBACK_/
|
66
|
-
puts "Stack rolled back: #{last_event_status}".
|
66
|
+
puts "Stack rolled back: #{last_event_status}".color(:red)
|
67
67
|
else # success
|
68
|
-
puts "Stack success status: #{last_event_status}".
|
68
|
+
puts "Stack success status: #{last_event_status}".color(:green)
|
69
69
|
end
|
70
70
|
|
71
71
|
# Never gets here when deleting a stack because the describe stack returns nothing
|
72
72
|
# once the stack is deleted. Gets here for stack create and update though.
|
73
73
|
return if @hide_time_took # set in run
|
74
74
|
took = Time.now - start_time
|
75
|
-
puts "Time took for stack deployment: #{pretty_time(took).green}."
|
75
|
+
puts "Time took for stack deployment: #{pretty_time(took).color(:green)}."
|
76
76
|
end
|
77
77
|
|
78
78
|
def completed
|
@@ -117,7 +117,7 @@ class Lono::Cfn
|
|
117
117
|
e["logical_resource_id"],
|
118
118
|
e["resource_status_reason"]
|
119
119
|
].join(" ")
|
120
|
-
message = message.
|
120
|
+
message = message.color(:red) if e["resource_status"] =~ /_FAILED/
|
121
121
|
puts message
|
122
122
|
end
|
123
123
|
|
data/lib/lono/cfn/util.rb
CHANGED
@@ -5,9 +5,9 @@ module Lono::Cfn::Util
|
|
5
5
|
else
|
6
6
|
message = case action
|
7
7
|
when :update
|
8
|
-
"Are you sure you want to want to update the #{stack_name.
|
8
|
+
"Are you sure you want to want to update the #{stack_name.color(:green)} stack with the changes? (y/N)"
|
9
9
|
when :delete
|
10
|
-
"Are you sure you want to want to delete the #{stack_name.
|
10
|
+
"Are you sure you want to want to delete the #{stack_name.color(:green)} stack? (y/N)"
|
11
11
|
end
|
12
12
|
puts message
|
13
13
|
sure = $stdin.gets
|
data/lib/lono/file_uploader.rb
CHANGED
@@ -58,13 +58,13 @@ module Lono
|
|
58
58
|
local_checksum = Digest::MD5.hexdigest(IO.read(path))
|
59
59
|
remote_checksum = remote_checksum(key)
|
60
60
|
if local_checksum == remote_checksum
|
61
|
-
puts("Not modified: #{pretty_path} to #{s3_full_path}".
|
61
|
+
puts("Not modified: #{pretty_path} to #{s3_full_path}".color(:yellow)) unless @options[:noop]
|
62
62
|
return # do not upload unless the checksum has changed
|
63
63
|
else
|
64
64
|
# Example output:
|
65
65
|
# Uploaded: app/files/docker.yml to s3://boltops-dev/s3_folder/templates/development/docker.yml
|
66
66
|
# Uploaded: app/files/ecs/private.yml to s3://boltops-dev/s3_folder/templates/development/ecs/private.yml
|
67
|
-
message = "Uploading: #{pretty_path} to #{s3_full_path}".
|
67
|
+
message = "Uploading: #{pretty_path} to #{s3_full_path}".color(:green)
|
68
68
|
message = "NOOP: #{message}" if @options[:noop]
|
69
69
|
puts message
|
70
70
|
end
|
data/lib/lono/help/cfn/diff.md
CHANGED
@@ -18,7 +18,7 @@ Displays code diff of the generated CloudFormation template locally vs the exist
|
|
18
18
|
$ subl -a ~/.lono/settings.yml
|
19
19
|
$
|
20
20
|
|
21
|
-
Here's a screenshot of the output with the
|
21
|
+
Here's a screenshot of the output with the colored diff:
|
22
22
|
|
23
23
|
<img src="/img/reference/lono-cfn-diff.png" alt="Stack Update" class="doc-photo">
|
24
24
|
|
data/lib/lono/importer.rb
CHANGED
@@ -16,7 +16,7 @@ class Lono::Importer
|
|
16
16
|
download_template
|
17
17
|
template_definition_path = add_template_definition
|
18
18
|
create_params
|
19
|
-
puts "=> Imported CloudFormation template and lono-fied it.".
|
19
|
+
puts "=> Imported CloudFormation template and lono-fied it.".color(:green)
|
20
20
|
puts "Template definition added to #{pretty_path(template_definition_path)}"
|
21
21
|
puts "Params file created to #{pretty_path(params_path)}"
|
22
22
|
end
|
@@ -34,7 +34,7 @@ class Lono::Importer
|
|
34
34
|
|
35
35
|
def show_params_file
|
36
36
|
path = "config/params/base/#{template_name}.txt"
|
37
|
-
puts "Here are contents of the params #{path.
|
37
|
+
puts "Here are contents of the params #{path.color(:green)} file:"
|
38
38
|
puts IO.read("#{Lono.root}/#{path}")
|
39
39
|
end
|
40
40
|
|
data/lib/lono/inspector/base.rb
CHANGED
@@ -24,7 +24,7 @@ class Lono::Inspector::Base
|
|
24
24
|
# does not exist.
|
25
25
|
def check_template_exists(template_path)
|
26
26
|
unless File.exist?(template_path)
|
27
|
-
puts "The template #{template_path} does not exist. Are you sure you use the right template name? The template name does not require the extension.".
|
27
|
+
puts "The template #{template_path} does not exist. Are you sure you use the right template name? The template name does not require the extension.".color(:red)
|
28
28
|
exit 1
|
29
29
|
end
|
30
30
|
end
|
data/lib/lono/project_checker.rb
CHANGED
@@ -16,7 +16,7 @@ module Lono
|
|
16
16
|
]
|
17
17
|
paths.each do |path|
|
18
18
|
unless File.exist?("#{Lono.root}/#{path}")
|
19
|
-
puts "ERROR: The #{path} does not exist in this project. Are you sure you are in lono project?".
|
19
|
+
puts "ERROR: The #{path} does not exist in this project. Are you sure you are in lono project?".color(:red)
|
20
20
|
quit 1
|
21
21
|
end
|
22
22
|
end
|
@@ -25,7 +25,7 @@ module Lono
|
|
25
25
|
# Dont exit for this one. It's okay. But show a warning.
|
26
26
|
def empty_templates
|
27
27
|
if Dir["#{Lono.config.templates_path}/**/*"].empty?
|
28
|
-
puts "INFO: The app/templates folder does not contain any lono template definitions.".
|
28
|
+
puts "INFO: The app/templates folder does not contain any lono template definitions.".color(:yellow)
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
data/lib/lono/script/upload.rb
CHANGED
@@ -16,7 +16,7 @@ class Lono::Script
|
|
16
16
|
obj = s3_resource.bucket(bucket_name).object(key)
|
17
17
|
start_time = Time.now
|
18
18
|
obj.upload_file(tarball_path)
|
19
|
-
time_took = pretty_time(Time.now-start_time).
|
19
|
+
time_took = pretty_time(Time.now-start_time).color(:green)
|
20
20
|
puts "Time to upload code to s3: #{time_took}"
|
21
21
|
end
|
22
22
|
|
data/lib/lono/sequence.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'fileutils'
|
2
|
-
require 'colorize'
|
3
2
|
require 'active_support/core_ext/string'
|
4
3
|
require 'thor'
|
5
4
|
require 'bundler'
|
@@ -19,7 +18,7 @@ class Lono::Sequence < Thor::Group
|
|
19
18
|
.select { |f| File.directory?(f) }
|
20
19
|
.map { |f| " #{File.basename(f)}" }
|
21
20
|
.sort
|
22
|
-
puts "The TEMPLATE=#{ENV['TEMPLATE']} you specified does not exist.".
|
21
|
+
puts "The TEMPLATE=#{ENV['TEMPLATE']} you specified does not exist.".color(:red)
|
23
22
|
puts "The available templates are:\n#{templates.join("\n")}"
|
24
23
|
exit
|
25
24
|
end
|
data/lib/lono/setting.rb
CHANGED
@@ -13,7 +13,7 @@ module Lono
|
|
13
13
|
return @@data if @@data
|
14
14
|
|
15
15
|
if @check_lono_project && !File.exist?(project_settings_path)
|
16
|
-
puts "ERROR: No settings file at #{project_settings_path}. Are you sure you are in a project with lono setup?".
|
16
|
+
puts "ERROR: No settings file at #{project_settings_path}. Are you sure you are in a project with lono setup?".color(:red)
|
17
17
|
exit 1
|
18
18
|
end
|
19
19
|
|
data/lib/lono/template/dsl.rb
CHANGED
@@ -57,7 +57,7 @@ class Lono::Template::DSL
|
|
57
57
|
error_info = e.backtrace.first
|
58
58
|
path, line_no, _ = error_info.split(':')
|
59
59
|
line_no = line_no.to_i
|
60
|
-
puts "Error evaluating #{path}:".
|
60
|
+
puts "Error evaluating #{path}:".color(:red)
|
61
61
|
puts e.message
|
62
62
|
puts "Here's the line in #{path} with the error:\n\n"
|
63
63
|
|
@@ -69,7 +69,7 @@ class Lono::Template::DSL
|
|
69
69
|
content_lines[top..bottom].each_with_index do |line_content, index|
|
70
70
|
line_number = top+index+1
|
71
71
|
if line_number == line_no
|
72
|
-
printf("%#{spacing}d %s\n".
|
72
|
+
printf("%#{spacing}d %s\n".color(:red), line_number, line_content)
|
73
73
|
else
|
74
74
|
printf("%#{spacing}d %s\n", line_number, line_content)
|
75
75
|
end
|
@@ -113,8 +113,8 @@ class Lono::Template::DSL
|
|
113
113
|
|
114
114
|
def handle_yaml_syntax_error(e, path)
|
115
115
|
io = StringIO.new
|
116
|
-
io.puts "Invalid yaml. Output written to debugging: #{path}".
|
117
|
-
io.puts "ERROR: #{e.message}".
|
116
|
+
io.puts "Invalid yaml. Output written to debugging: #{path}".color(:red)
|
117
|
+
io.puts "ERROR: #{e.message}".color(:red)
|
118
118
|
|
119
119
|
# Grab line info. Example error:
|
120
120
|
# ERROR: (<unknown>): could not find expected ':' while scanning a simple key at line 2 column 1
|
@@ -128,7 +128,7 @@ class Lono::Template::DSL
|
|
128
128
|
lines[top..bottom].each_with_index do |line_content, index|
|
129
129
|
line_number = top+index+1
|
130
130
|
if line_number == line
|
131
|
-
io.printf("%#{spacing}d %s\n".
|
131
|
+
io.printf("%#{spacing}d %s\n".color(:red), line_number, line_content)
|
132
132
|
else
|
133
133
|
io.printf("%#{spacing}d %s\n", line_number, line_content)
|
134
134
|
end
|
data/lib/lono/template/helper.rb
CHANGED
@@ -18,7 +18,7 @@ module Lono::Template::Helper
|
|
18
18
|
user = options[:as] || "ec2-user"
|
19
19
|
|
20
20
|
if Dir.glob("#{Lono.config.scripts_path}/*").empty?
|
21
|
-
puts "WARN: you are using the extract_scripts helper method but you do not have any app/scripts.".
|
21
|
+
puts "WARN: you are using the extract_scripts helper method but you do not have any app/scripts.".color(:yellow)
|
22
22
|
calling_line = caller[0].split(':')[0..1].join(':')
|
23
23
|
puts "Called from: #{calling_line}"
|
24
24
|
return ""
|
@@ -45,7 +45,7 @@ BASH_CODE
|
|
45
45
|
lines = caller.reject { |l| l =~ %r{lib/lono} } # hide internal lono trace
|
46
46
|
puts " #{lines[0]}"
|
47
47
|
|
48
|
-
puts "Please configure your settings.yml with an s3_folder.".
|
48
|
+
puts "Please configure your settings.yml with an s3_folder.".color(:red)
|
49
49
|
puts "Detected AWS_PROFILE #{ENV['AWS_PROFILE'].inspect}"
|
50
50
|
exit 1
|
51
51
|
end
|
@@ -197,11 +197,11 @@ private
|
|
197
197
|
end
|
198
198
|
|
199
199
|
if paths.size > 1 # ambiguous match
|
200
|
-
puts "ERROR: Multiple possible partials found:".
|
200
|
+
puts "ERROR: Multiple possible partials found:".color(:red)
|
201
201
|
paths.each do |path|
|
202
202
|
puts " #{path}"
|
203
203
|
end
|
204
|
-
puts "Please specify an extension in the name to remove the ambiguity.".
|
204
|
+
puts "Please specify an extension in the name to remove the ambiguity.".color(:green)
|
205
205
|
exit 1
|
206
206
|
end
|
207
207
|
|
@@ -46,7 +46,7 @@ class Lono::Template::Template
|
|
46
46
|
if File.exist?(@source_path)
|
47
47
|
RenderMePretty.result(@source_path, context: context)
|
48
48
|
else
|
49
|
-
puts "ERROR: #{@source_path} does not exist, but it was used as a template source.".
|
49
|
+
puts "ERROR: #{@source_path} does not exist, but it was used as a template source.".color(:red)
|
50
50
|
exit 1
|
51
51
|
end
|
52
52
|
end
|
data/lib/lono/template/upload.rb
CHANGED
@@ -61,7 +61,7 @@ class Lono::Template::Upload
|
|
61
61
|
local_checksum = Digest::MD5.hexdigest(IO.read(path))
|
62
62
|
remote_checksum = remote_checksum(path)
|
63
63
|
if local_checksum == remote_checksum
|
64
|
-
say("Not modified: #{pretty_path} to #{s3_full_path}".
|
64
|
+
say("Not modified: #{pretty_path} to #{s3_full_path}".color(:yellow)) unless @options[:noop]
|
65
65
|
return # do not upload unless the checksum has changed
|
66
66
|
end
|
67
67
|
|
@@ -75,7 +75,7 @@ class Lono::Template::Upload
|
|
75
75
|
# Example output:
|
76
76
|
# Uploaded: output/templates/docker.yml to s3://boltops-dev/s3_folder/templates/development/docker.yml
|
77
77
|
# Uploaded: output/templates/ecs/private.yml to s3://boltops-dev/s3_folder/templates/development/ecs/private.yml
|
78
|
-
message = "Uploaded: #{pretty_path} to #{s3_full_path}".
|
78
|
+
message = "Uploaded: #{pretty_path} to #{s3_full_path}".color(:green)
|
79
79
|
message = "NOOP: #{message}" if @options[:noop]
|
80
80
|
say message
|
81
81
|
end
|
@@ -141,8 +141,8 @@ class Lono::Template::Upload
|
|
141
141
|
return if @options[:noop]
|
142
142
|
return if s3_folder
|
143
143
|
|
144
|
-
say "Unable to upload templates to s3 because you have not configured the s3_folder option in lono settings.yml.".
|
145
|
-
say "Please configure settings.yml with s3_folder. For more help: http://lono.cloud/docs/settings/".
|
144
|
+
say "Unable to upload templates to s3 because you have not configured the s3_folder option in lono settings.yml.".color(:red)
|
145
|
+
say "Please configure settings.yml with s3_folder. For more help: http://lono.cloud/docs/settings/".color(:red)
|
146
146
|
exit 1
|
147
147
|
end
|
148
148
|
|
data/lib/lono/user_data.rb
CHANGED
data/lib/lono/version.rb
CHANGED
data/lono.gemspec
CHANGED
@@ -4,7 +4,7 @@ require_relative "lib/lono/version"
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.authors = ["Tung Nguyen"]
|
6
6
|
gem.email = ["tongueroo@gmail.com"]
|
7
|
-
gem.summary =
|
7
|
+
gem.summary = "Lono is a CloudFormation Framework Tool"
|
8
8
|
gem.homepage = "http://github.com/tongueroo/lono"
|
9
9
|
|
10
10
|
vendor_files = Dir.glob("vendor/**/*")
|
@@ -23,7 +23,6 @@ Gem::Specification.new do |gem|
|
|
23
23
|
gem.add_dependency "activesupport"
|
24
24
|
gem.add_dependency "aws-sdk-cloudformation"
|
25
25
|
gem.add_dependency "aws-sdk-s3"
|
26
|
-
gem.add_dependency "colorize"
|
27
26
|
gem.add_dependency "filesize"
|
28
27
|
gem.add_dependency "graph" # lono graph command dependency
|
29
28
|
gem.add_dependency "guard"
|
@@ -31,10 +30,11 @@ Gem::Specification.new do |gem|
|
|
31
30
|
gem.add_dependency "guard-lono"
|
32
31
|
gem.add_dependency "hashie"
|
33
32
|
gem.add_dependency "json"
|
33
|
+
gem.add_dependency "memoist"
|
34
|
+
gem.add_dependency "rainbow"
|
34
35
|
gem.add_dependency "rb-fsevent"
|
35
|
-
gem.add_dependency "thor"
|
36
36
|
gem.add_dependency "render_me_pretty"
|
37
|
-
gem.add_dependency "
|
37
|
+
gem.add_dependency "thor"
|
38
38
|
# gem.add_dependency "plissken" # dependency for vendor/lono-params
|
39
39
|
# using the vendor fork version: https://github.com/tongueroo/plissken
|
40
40
|
# until https://github.com/futurechimp/plissken/pull/6 gets merged
|
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: 4.2.
|
4
|
+
version: 4.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: filesize
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: graph
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: guard
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name: guard
|
98
|
+
name: guard-cloudformation
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name: guard-
|
112
|
+
name: guard-lono
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
@@ -123,7 +123,7 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: hashie
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - ">="
|
@@ -137,7 +137,7 @@ dependencies:
|
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: json
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - ">="
|
@@ -151,7 +151,7 @@ dependencies:
|
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: memoist
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - ">="
|
@@ -165,7 +165,7 @@ dependencies:
|
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
168
|
+
name: rainbow
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - ">="
|
@@ -179,7 +179,7 @@ dependencies:
|
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
182
|
+
name: rb-fsevent
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
185
|
- - ">="
|
@@ -207,7 +207,7 @@ dependencies:
|
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: '0'
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
210
|
+
name: thor
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
213
|
- - ">="
|
@@ -476,6 +476,5 @@ rubyforge_project:
|
|
476
476
|
rubygems_version: 2.7.6
|
477
477
|
signing_key:
|
478
478
|
specification_version: 4
|
479
|
-
summary: Lono is a CloudFormation
|
480
|
-
templates based on ERB templates.
|
479
|
+
summary: Lono is a CloudFormation Framework Tool
|
481
480
|
test_files: []
|