namespace :distribution do

def distribution
  @distribution ||= Capistrano::Distribution.new(self)
end

desc 'Confirm that all required distributables are available'
task :check do
  on release_roles(:all), fetch(:distribution_runner_opts) do
    exit 1 unless distribution.check
  end
end

desc 'Distribute the artifacts'
task :create_release do
  on release_roles(:all), fetch(:distribution_runner_opts) do
    distribution.distribute
  end
end

desc 'Set a revision identifier'
task :set_current_revision do
  set(:current_revision, distribution.release_id)
end

end

namespace :load do

task :defaults do
  set :distribution_runner_opts, {}
end

end