Sha256: 8cf5e0a6864a56396931fa1e623d91422a58b71bf8ec4b14b6ea8907a4b95548

Contents?: true

Size: 1.68 KB

Versions: 13

Compression:

Stored size: 1.68 KB

Contents

require 'trollop'

module SimpleDeploy
  module CLI

    class Attributes
      def show
        @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,
                                   :required => [:environment, :name]

        @opts[:as_command_args] ? command_args_output : default_output
      end

      private
      def attribute_data
        Hash[stack.attributes.sort]
      end

      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

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
simple_deploy-0.6.4 lib/simple_deploy/cli/attributes.rb
simple_deploy-0.6.3 lib/simple_deploy/cli/attributes.rb
simple_deploy-0.6.2 lib/simple_deploy/cli/attributes.rb
simple_deploy-0.6.1 lib/simple_deploy/cli/attributes.rb
simple_deploy-0.6.0 lib/simple_deploy/cli/attributes.rb
simple_deploy-0.5.6 lib/simple_deploy/cli/attributes.rb
simple_deploy-0.5.5 lib/simple_deploy/cli/attributes.rb
simple_deploy-0.5.4 lib/simple_deploy/cli/attributes.rb
simple_deploy-0.5.3 lib/simple_deploy/cli/attributes.rb
simple_deploy-0.5.2 lib/simple_deploy/cli/attributes.rb
simple_deploy-0.5.1 lib/simple_deploy/cli/attributes.rb
simple_deploy-0.5.0 lib/simple_deploy/cli/attributes.rb
simple_deploy-0.4.8 lib/simple_deploy/cli/attributes.rb