Class: Microstatic::Rake::AwsSiteSetupTask
- Inherits:
-
Rake::TaskLib
- Object
- Rake::TaskLib
- Microstatic::Rake::AwsSiteSetupTask
- Defined in:
- lib/microstatic/rake/aws_site_setup_task.rb
Instance Method Summary collapse
- #define ⇒ Object
-
#initialize(task_env) ⇒ AwsSiteSetupTask
constructor
A new instance of AwsSiteSetupTask.
Constructor Details
#initialize(task_env) ⇒ AwsSiteSetupTask
Returns a new instance of AwsSiteSetupTask.
6 7 8 |
# File 'lib/microstatic/rake/aws_site_setup_task.rb', line 6 def initialize(task_env) @task_env = task_env end |
Instance Method Details
#define ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/microstatic/rake/aws_site_setup_task.rb', line 10 def define require 'microstatic' te = @task_env desc "set up S3 bucket and Route53 DNS entry for a new site" unless ::Rake.application.last_comment task te.task_name_or('aws_site_setup'), :site_name, :hosted_zone do |t,args| site_name = args[:site_name] hosted_zone = args.with_defaults(:hosted_zone => false)[:hosted_zone] # TODO: check site_name looks like a site name (e.g. foo.thepete.net, not just foo) site_name or raise "you must provide a site_name parameter to this rake task" te.check_for_aws_creds! # TODO: check it doesn't already exist for you # TODO: handle the bucket name already being taken by someone else S3BucketCreator.new( te.aws_creds ).create( site_name ) # TODO: handle DNS record already existing Route53Dns.new( te.aws_creds ).add_s3_record_for_bucket( site_name, hosted_zone ) end end |