Skip to content

Commit

Permalink
Fixes #155: Remove guesses about update changes from status output. (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
askreet committed Oct 18, 2016
1 parent f20ca56 commit c63b82c
Showing 1 changed file with 3 additions and 49 deletions.
52 changes: 3 additions & 49 deletions lib/moonshot/stack_parameter_printer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,62 +9,16 @@ def initialize(stack, table)

def print
p_table = @table.add_leaf('Stack Parameters')
overrides = @stack.overrides
rows = @stack.parameters.sort.map do |key, value|
t_param = @stack.template.parameters.find do |p|
p.name == key
end

properties = determine_change(t_param ? t_param.default : nil,
overrides[key],
value)

[
"#{key}:",
format_value(value),
format_properties(properties)
]
["#{key}:", format_value(value)]
end

p_table.add_table(rows)
end

def determine_change(default, override, current)
properties = []

# If there is a stack override, determine if it would change the current
# stack.
if override
properties << 'overridden'
if current == '****'
properties << 'may be updated, NoEcho set'
elsif override != current
properties << "would be updated to #{override}"
end

else
# Otherwise, compare the template default with the current value to
# determine outcome.
properties << 'default'
properties << "would be updated to #{default}" if default != current
end

properties
end

def format_properties(properties)
string = " (#{properties.join(', ')})"

if properties.any? { |p| p =~ /be updated/ }
string.yellow
else
string.green
end
end

def format_value(value)
if value.size > 40
value[0..40] + '...'
if value.size > 60
value[0..60] + '...'
else
value
end
Expand Down

0 comments on commit c63b82c

Please sign in to comment.