From 216dd9ab6a3bd9089ae80c6f553e2aca61ca9c4c Mon Sep 17 00:00:00 2001 From: Evan Kaufman Date: Thu, 7 Nov 2013 13:34:37 -0600 Subject: [PATCH 1/3] As a counterpart to `deploy:setup` Fixes #6 --- deployment/lib/server.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/deployment/lib/server.rb b/deployment/lib/server.rb index f33a550..98d053a 100644 --- a/deployment/lib/server.rb +++ b/deployment/lib/server.rb @@ -20,6 +20,11 @@ sudo "/etc/init.d/varnish stop" end + desc "Tear down anything previously deployed" + task :teardown, :roles => :web do + sudo "rm -rf #{deploy_to}" + end + desc "Fix permissions" task :permissions do # Avoid uploading problems if Apache owns directories From 4b08061abae7d219675ddcfa2f0fb239ec797a69 Mon Sep 17 00:00:00 2001 From: Evan Kaufman Date: Thu, 7 Nov 2013 13:43:46 -0600 Subject: [PATCH 2/3] So *maybe* a good idea to prompt beforehand --- deployment/lib/server.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/deployment/lib/server.rb b/deployment/lib/server.rb index 98d053a..a6c1070 100644 --- a/deployment/lib/server.rb +++ b/deployment/lib/server.rb @@ -1,5 +1,27 @@ require 'pathname' +before "genesis:teardown" do + set(:confirmed) do + logger.important <<-WARN + + ======================================================================== + + WARNING: You are about to permanently remove everything within #{deploy_to} + + ======================================================================== + + 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 desc "Restart Apache + Varnish" task :restart, :roles => :web do From f579bdc4f54a1bfe9829d58d3fcb2152311aa663 Mon Sep 17 00:00:00 2001 From: Evan Kaufman Date: Mon, 18 Nov 2013 15:39:38 -0600 Subject: [PATCH 3/3] Documented genesis:teardown --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ff24d40..7f1fcd9 100644 --- a/README.md +++ b/README.md @@ -198,6 +198,7 @@ which you can see by running: cap genesis:up # Uploads Vagrant database & local files into production cap genesis:up:db # Uploads Vagrant database into remote cap genesis:up:files # Uploads local project files to remote + cap genesis:teardown # Remove any existing remote deployment files; counterpart to cap's built-in deploy:setup Now run any one of those commands against an environemnt: