Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions deployment/lib/sync.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,28 @@
end
end

before "genesis:up:mirror" do
set(:confirmed) do
logger.important <<-WARN

========================================================

WARNING: You are about to DESTRUCTIVELY override "#{stage}" files!

========================================================

WARN

answer = Capistrano::CLI.ui.ask " Are you sure you want to continue? (YES) "
if answer === 'YES' then true else false end
end

unless fetch(:confirmed)
logger.info "\Aborted!"
exit
end
end

namespace :genesis do
namespace :down do
desc "Downloads both remote database & syncs remote files into Vagrant"
Expand Down Expand Up @@ -125,6 +147,16 @@
end
end

desc "Destructively syncs local project files to remote"
task :mirror, :roles => :web do
set :excludes, "--exclude '#{rsync_exclude.join('\' --exclude \'')}'"

find_servers_for_task(current_task).each do |current_server|
system "chmod 600 #{ssh_options[:keys][0]}" unless ssh_options.keys.empty?
system "rsync -e \"ssh -i #{ssh_options[:keys][0]}\" -avvru --delete --copy-links #{excludes} --progress #{'--dry-run' if dry_run} #{local_web}/ #{user}@#{current_server}:#{remote_web}/"
end
end

desc "Uploads limited dirs to remote"
task :limited, :roles => :web do
set :excludes, "--exclude '#{rsync_exclude.join('\' --exclude \'')}'"
Expand Down