Sha256: e5e21689b4b363f4ea870930fb32b54538585a7bf5d06b23dd712e999c737fd0

Contents?: true

Size: 1.38 KB

Versions: 12

Compression:

Stored size: 1.38 KB

Contents

require 'thor'
require 'awspec/setup'

module Awspec
  class Generate < Thor
    types = %w(
      vpc ec2 rds security_group elb
    )

    types.each do |type|
      desc type + ' [vpc_id]', "Generate #{type} spec from VPC ID (or VPC \"Name\" tag)"
      define_method type do |*args|
        load_secrets
        vpc_id = args.first
        eval "puts Awspec::Generator::Spec::#{type.camelize}.new.generate_by_vpc_id(vpc_id)"
      end
    end

    desc 'route53_hosted_zone [example.com.]', 'Generate route53_hosted_zone spec from Domain name'
    def route53_hosted_zone(hosted_zone)
      load_secrets
      puts Awspec::Generator::Spec::Route53HostedZone.new.generate_by_domain_name(hosted_zone)
    end

    desc 'iam_policy', 'Generate attached iam_policy spec'
    def iam_policy
      load_secrets
      puts Awspec::Generator::Spec::IamPolicy.new.generate_all
    end

    no_commands do
      def load_secrets
        creds = YAML.load_file('spec/secrets.yml') if File.exist?('spec/secrets.yml')
        creds = YAML.load_file('secrets.yml') if File.exist?('secrets.yml')
        Aws.config.update({
                            region: creds['region'],
                            credentials: Aws::Credentials.new(
                              creds['aws_access_key_id'],
                              creds['aws_secret_access_key'])
                          }) if creds
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
awspec-0.18.0 lib/awspec/command/generate.rb
awspec-0.17.1 lib/awspec/command/generate.rb
awspec-0.17.0 lib/awspec/command/generate.rb
awspec-0.16.0 lib/awspec/command/generate.rb
awspec-0.15.0 lib/awspec/command/generate.rb
awspec-0.14.1 lib/awspec/command/generate.rb
awspec-0.14.0 lib/awspec/command/generate.rb
awspec-0.13.0 lib/awspec/command/generate.rb
awspec-0.12.1 lib/awspec/command/generate.rb
awspec-0.12.0 lib/awspec/command/generate.rb
awspec-0.11.0 lib/awspec/command/generate.rb
awspec-0.10.2 lib/awspec/command/generate.rb