lib/simple_deploy/cli/attributes.rb in simple_deploy-0.4.7 vs lib/simple_deploy/cli/attributes.rb in simple_deploy-0.4.8

- old
+ new

@@ -1,38 +1,63 @@ require 'trollop' module SimpleDeploy module CLI + class Attributes def show - opts = Trollop::options do + @opts = Trollop::options do version SimpleDeploy::VERSION banner <<-EOS Show attributes for stack. simple_deploy attributes -n STACK_NAME -e ENVIRONMENT EOS opt :help, "Display Help" + opt :as_command_args, + "Displays the attributes in a format suitable for using on the command line" opt :environment, "Set the target environment", :type => :string opt :log_level, "Log level: debug, info, warn, error", :type => :string, :default => 'info' opt :name, "Stack name to manage", :type => :string end - CLI::Shared.valid_options? :provided => opts, + CLI::Shared.valid_options? :provided => @opts, :required => [:environment, :name] - config = Config.new.environment opts[:environment] + @opts[:as_command_args] ? command_args_output : default_output + end - logger = SimpleDeployLogger.new :log_level => opts[:log_level] + private + def attribute_data + Hash[stack.attributes.sort] + end - stack = Stack.new :environment => opts[:environment], - :name => opts[:name], - :config => config, - :logger => logger - Hash[stack.attributes.sort].each_pair { |k, v| puts "#{k}=#{v}" } + def command_args_output + puts attribute_data.map { |k, v| "-a #{k}=#{v}" }.join(' ') end + + def config + @config ||= Config.new.environment @opts[:environment] + end + + def default_output + attribute_data.each_pair { |k, v| puts "#{k}=#{v}" } + end + + def logger + @logger ||= SimpleDeployLogger.new :log_level => @opts[:log_level] + end + + def stack + @stack = Stack.new :environment => @opts[:environment], + :name => @opts[:name], + :config => config, + :logger => logger + end + end + end end