class Opsup::CLI::OptionBuilder
Constants
- DEFAULT_AWS_REGION
Public Class Methods
create()
click to toggle source
# File lib/opsup/cli/option_builder.rb, line 10 def self.create new end
Public Instance Methods
define_options(parser)
click to toggle source
# File lib/opsup/cli/option_builder.rb, line 17 def define_options(parser) parser.tap do |p| p.on('-s', '--stack STACK_NAME', 'target stack name') p.on('-m', '--mode MODE', Opsup::Config::MODES.join(' | ').to_s) p.on('--aws-cred KEY_ID,SECRET_KEY', 'AWS credentials') p.on('--opsworks-region REGION', "default: #{DEFAULT_AWS_REGION}") p.on('--cookbook-url URL', 'URL of cookbook to upload') p.on('--s3-bucket NAME', 'S3 bucket name for cookbooks') p.on('-d', '--dryrun') end end
generate_config(options)
click to toggle source
# File lib/opsup/cli/option_builder.rb, line 50 def generate_config(options) %w[stack aws-cred].each do |key| raise Opsup::Error, "missing required option: --#{key}" unless options[key.to_sym] end aws_key_id, aws_secret = options[:"aws-cred"].split(',') if aws_key_id.nil? || aws_secret.nil? raise Opsup::Error, "aws-cred must be 'key_id,secret_key' format" end mode = options[:mode]&.to_sym raise Opsup::Error, "invalid mode: #{mode}" if mode && !Opsup::Config::MODES.include?(mode) Opsup::Config.new( stack_name: options[:stack], aws_access_key_id: aws_key_id, aws_secret_access_key: aws_secret, opsworks_region: options[:"opsworks-region"] || DEFAULT_AWS_REGION, cookbook_url: options[:"cookbook-url"], s3_bucket_name: options[:"s3-bucket"], s3_region: options[:"s3-region"] || DEFAULT_AWS_REGION, running_mode: mode, dryrun: options[:dryrun] || false, ) end
options_from_env_vars(env_vars)
click to toggle source
# File lib/opsup/cli/option_builder.rb, line 34 def options_from_env_vars(env_vars) [ %w[stack STACK], %w[mode MODE], %w[aws-cred AWS_CRED], %w[opsworks-region OPSWORKS_REGION], %w[cookbook-url COOKBOOK_URL], %w[s3-bucket S3_BUCKET], %w[dryrun DRYRUN], ].each_with_object({}) do |(key, env_key), obj| value = env_vars["OPSUP_#{env_key}"] obj[key.to_sym] = value if value end end