lono 4.2.4 → 4.2.5
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|