namespace :ow do

require 'momentum/tasks'

namespace :deploy do
  %w{staging production}.each do |env|
    desc "Deploy the #{Momentum.config[:app_base_name]} to the #{stack_name(env)} OpsWorks stack."
    task(env.to_sym) { Rake::Task['ow:deploy'].invoke(env) }
  end
end

desc "Deploy to the given OpsWorks stack."
task :deploy, [:to, :aws_id, :aws_secret] do |t, args|
  require_credentials!(args)
  deployer = Momentum::OpsWorks::Deployer.new(args[:aws_id], args[:aws_secret])
  name = stack_name(args[:to])
  deployment = deployer.deploy!(name)
  $stderr.puts "Triggered deployment #{deployment[:deployment_id]} to #{name}..."
  deployer.wait_for_success!(deployment)
end

end