chicken_soup 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/.rspec +1 -0
- data/.rvmrc +1 -0
- data/chicken_soup.gemspec +3 -1
- data/lib/chicken_soup/capabilities.rb +21 -6
- data/lib/chicken_soup/capabilities/apache/apache-checks.rb +19 -0
- data/lib/chicken_soup/capabilities/apache/apache-defaults.rb +30 -0
- data/lib/chicken_soup/capabilities/apache/apache-tasks.rb +85 -0
- data/lib/chicken_soup/capabilities/bundler/bundler-checks.rb +19 -0
- data/lib/chicken_soup/capabilities/bundler/bundler-defaults.rb +14 -0
- data/lib/chicken_soup/capabilities/bundler/bundler-tasks.rb +35 -0
- data/lib/chicken_soup/capabilities/checks.rb +1 -1
- data/lib/chicken_soup/capabilities/defaults.rb +22 -5
- data/lib/chicken_soup/capabilities/{git.rb → git/git-defaults.rb} +2 -13
- data/lib/chicken_soup/capabilities/heroku/heroku-checks.rb +22 -0
- data/lib/chicken_soup/capabilities/heroku/heroku-defaults.rb +16 -0
- data/lib/chicken_soup/capabilities/{heroku.rb → heroku/heroku-tasks.rb} +5 -45
- data/lib/chicken_soup/capabilities/{mysql.rb → mysql/mysql-tasks.rb} +0 -0
- data/lib/chicken_soup/capabilities/nginx/nginx-checks.rb +19 -0
- data/lib/chicken_soup/capabilities/nginx/nginx-defaults.rb +21 -0
- data/lib/chicken_soup/capabilities/nginx/nginx-tasks.rb +85 -0
- data/lib/chicken_soup/capabilities/{passenger.rb → passenger/passenger-tasks.rb} +1 -1
- data/lib/chicken_soup/capabilities/postgres/postgres-checks.rb +17 -0
- data/lib/chicken_soup/capabilities/postgres/postgres-defaults.rb +15 -0
- data/lib/chicken_soup/capabilities/{postgres.rb → postgres/postgres-tasks.rb} +1 -1
- data/lib/chicken_soup/capabilities/rvm/rvm-checks.rb +21 -0
- data/lib/chicken_soup/capabilities/rvm/rvm-defaults.rb +13 -0
- data/lib/chicken_soup/capabilities/rvm/rvm-tasks.rb +6 -0
- data/lib/chicken_soup/capabilities/shared/db-checks.rb +19 -0
- data/lib/chicken_soup/capabilities/shared/db-defaults.rb +13 -0
- data/lib/chicken_soup/capabilities/shared/{db.rb → db-tasks.rb} +24 -11
- data/lib/chicken_soup/capabilities/shared/web_server-tasks.rb +99 -0
- data/lib/chicken_soup/capabilities/{svn.rb → svn/svn-defaults.rb} +0 -13
- data/lib/chicken_soup/capabilities/svn/svn-tasks.rb +12 -0
- data/lib/chicken_soup/capabilities/tasks.rb +12 -0
- data/lib/chicken_soup/capabilities/unix/unix-checks.rb +33 -0
- data/lib/chicken_soup/capabilities/unix/unix-defaults.rb +42 -0
- data/lib/chicken_soup/capabilities/{unix.rb → unix/unix-tasks.rb} +4 -83
- data/lib/chicken_soup/deploy.rb +0 -5
- data/lib/chicken_soup/environment.rb +10 -0
- data/lib/chicken_soup/environment/checks.rb +17 -2
- data/lib/chicken_soup/environment/defaults.rb +25 -3
- data/lib/chicken_soup/environment/tasks.rb +12 -0
- data/lib/chicken_soup/global.rb +77 -2
- data/lib/chicken_soup/notifiers.rb +7 -4
- data/lib/chicken_soup/notifiers/checks.rb +1 -1
- data/lib/chicken_soup/notifiers/defaults.rb +1 -2
- data/lib/chicken_soup/notifiers/email/email-checks.rb +26 -0
- data/lib/chicken_soup/notifiers/email/email-defaults.rb +50 -0
- data/lib/chicken_soup/notifiers/email/email-tasks.rb +37 -0
- data/lib/chicken_soup/notifiers/email/presenter.rb +56 -0
- data/lib/chicken_soup/notifiers/{git.rb → git/git-tasks.rb} +0 -0
- data/lib/chicken_soup/notifiers/{hoptoad.rb → hoptoad/hoptoad-tasks.rb} +0 -0
- data/lib/chicken_soup/notifiers/tasks.rb +12 -0
- data/lib/chicken_soup/templates/client_email.html.erb +21 -0
- data/lib/chicken_soup/templates/internal_email.html.erb +19 -0
- data/lib/chicken_soup/version.rb +1 -1
- data/lib/chicken_stock.rb +3 -3
- data/spec/support/focused.rb +10 -0
- metadata +91 -35
- data/lib/chicken_soup/capabilities/apache.rb +0 -235
- data/lib/chicken_soup/capabilities/bundler.rb +0 -68
- data/lib/chicken_soup/capabilities/rvm.rb +0 -42
- data/lib/chicken_soup/notifiers/email.rb +0 -109
data/.gitignore
CHANGED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use ruby-1.9.2@chicken_soup
|
data/chicken_soup.gemspec
CHANGED
@@ -28,8 +28,10 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.require_paths = ["lib"]
|
29
29
|
#= Manifest =#
|
30
30
|
|
31
|
-
s.add_dependency('capistrano', '~> 2.
|
31
|
+
s.add_dependency('capistrano', '~> 2.6.0')
|
32
32
|
s.add_dependency('mail', '~> 2.2.15')
|
33
33
|
|
34
34
|
s.add_development_dependency('bundler', '~> 1.0.10')
|
35
|
+
s.add_development_dependency('rspec', '~> 2.6.0')
|
36
|
+
s.add_development_dependency('yard', '~> 0.7.1')
|
35
37
|
end
|
@@ -1,16 +1,31 @@
|
|
1
1
|
######################################################################
|
2
|
-
# CAPABILITIES SETUP
|
2
|
+
# CAPABILITIES SETUP
|
3
|
+
#
|
4
|
+
# Beginning here, the deployment will utilize the :capabilities array
|
5
|
+
# which should have been set in the deploy.rb file. If :capabilites
|
6
|
+
# was not set, then nothing else is loaded.
|
7
|
+
#
|
8
|
+
# If it was set, we first load all of the default values for each
|
9
|
+
# capability's environment variables.
|
10
|
+
#
|
11
|
+
# Next, we verify that each capability has what it needs to proceed
|
12
|
+
# through the rest of the deployment. If not, the deployment will
|
13
|
+
# abort.
|
14
|
+
#
|
3
15
|
######################################################################
|
4
16
|
Capistrano::Configuration.instance(:must_exist).load do
|
5
17
|
require 'chicken_soup/capabilities/defaults'
|
6
18
|
require "chicken_soup/capabilities/checks"
|
19
|
+
require "chicken_soup/capabilities/tasks"
|
7
20
|
|
8
|
-
|
9
|
-
|
10
|
-
|
21
|
+
['defaults', 'checks', 'tasks'].each do |method|
|
22
|
+
desc "[internal] This task is only here because `require` cannot be used within a `namespace`"
|
23
|
+
task "load_capability_#{method}".to_sym do
|
24
|
+
require_if_exists "chicken_soup/capabilities/#{deployment_type}/#{deployment_type}-#{method}"
|
11
25
|
|
12
|
-
|
13
|
-
|
26
|
+
fetch(:capabilities).each do |capability|
|
27
|
+
require_if_exists "chicken_soup/capabilities/#{capability}/#{capability}-#{method}"
|
28
|
+
end
|
14
29
|
end
|
15
30
|
end
|
16
31
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
######################################################################
|
2
|
+
# APACHE CHECKS #
|
3
|
+
######################################################################
|
4
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
+
namespace :capabilities do
|
6
|
+
namespace :check do
|
7
|
+
desc <<-DESC
|
8
|
+
[internal] Checks to see if all necessary Apache capabilities variables have been set up.
|
9
|
+
DESC
|
10
|
+
task :apache do
|
11
|
+
required_variables = [
|
12
|
+
:web_server_control_script
|
13
|
+
]
|
14
|
+
|
15
|
+
verify_variables(required_variables)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
######################################################################
|
2
|
+
# APACHE DEFAULTS #
|
3
|
+
######################################################################
|
4
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
+
namespace :capabilities do
|
6
|
+
namespace :defaults do
|
7
|
+
desc "[internal] Sets intelligent defaults for Apache deployments."
|
8
|
+
task :apache do
|
9
|
+
find_web_server_control_script
|
10
|
+
|
11
|
+
if web_server_control_script =~ /apache2/
|
12
|
+
set :apache_enable_script, "a2ensite"
|
13
|
+
set :apache_disable_script, "a2dissite"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def find_web_server_control_script
|
21
|
+
if remote_file_exists?("/usr/sbin/apachectl")
|
22
|
+
set :web_server_control_script, "/usr/sbin/apachectl"
|
23
|
+
elsif remote_file_exists?("/usr/sbin/apache2")
|
24
|
+
set :web_server_control_script, "/usr/sbin/apache2"
|
25
|
+
elsif remote_file_exists?("/usr/sbin/httpd")
|
26
|
+
set :web_server_control_script, "/usr/sbin/httpd"
|
27
|
+
end
|
28
|
+
|
29
|
+
abort "Couldn't figure out how to control your installation of Apache" unless exists?(:web_server_control_script)
|
30
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
######################################################################
|
2
|
+
# APACHE TASKS #
|
3
|
+
######################################################################
|
4
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
+
require 'chicken_soup/capabilities/shared/web_server-tasks'
|
6
|
+
|
7
|
+
namespace :website do
|
8
|
+
desc "Creates the site configuration for the files."
|
9
|
+
task :create do
|
10
|
+
abort "Sorry, auto-installing sites is not supported on your version of Apache." unless exists?(:apache_disable_script)
|
11
|
+
|
12
|
+
virtual_host_config = <<-VHOST
|
13
|
+
<VirtualHost #{web_server_ip}:443>
|
14
|
+
ServerName #{deploy_site_name}
|
15
|
+
DocumentRoot #{deploy_to}/current/public
|
16
|
+
|
17
|
+
SSLEngine on
|
18
|
+
SSLCertificateFile /etc/ssl/certs/#{domain}.crt
|
19
|
+
SSLCertificateKeyFile /etc/ssl/certs/#{domain}.key
|
20
|
+
|
21
|
+
RailsEnv #{rails_env}
|
22
|
+
RackEnv #{rails_env}
|
23
|
+
|
24
|
+
<Directory "#{deploy_to}/current/public">
|
25
|
+
Options FollowSymLinks -MultiViews
|
26
|
+
AllowOverride all
|
27
|
+
Order allow,deny
|
28
|
+
Allow from all
|
29
|
+
</Directory>
|
30
|
+
|
31
|
+
RewriteEngine On
|
32
|
+
|
33
|
+
ErrorDocument 503 /system/maintenance.html
|
34
|
+
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
|
35
|
+
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
|
36
|
+
RewriteCond %{REQUEST_URI} !^/images/
|
37
|
+
RewriteCond %{REQUEST_URI} !^/robots.txt
|
38
|
+
RewriteCond %{REQUEST_URI} !^/sitemap
|
39
|
+
RewriteRule ^.*$ - [redirect=503,last]
|
40
|
+
|
41
|
+
ErrorLog /var/log/apache2/#{application}-errors.log
|
42
|
+
|
43
|
+
LogLevel warn
|
44
|
+
|
45
|
+
CustomLog /var/log/apache2/#{application}-access.log combined
|
46
|
+
ServerSignature On
|
47
|
+
</VirtualHost>
|
48
|
+
|
49
|
+
<VirtualHost #{web_server_ip}:80>
|
50
|
+
ServerName #{deploy_site_name}
|
51
|
+
|
52
|
+
Redirect permanent / https://#{deploy_site_name}
|
53
|
+
</VirtualHost>
|
54
|
+
VHOST
|
55
|
+
|
56
|
+
put virtual_host_config, "#{user_home}/#{deploy_site_name}"
|
57
|
+
run "#{sudo} mv #{user_home}/#{deploy_site_name} /etc/apache2/sites-available"
|
58
|
+
web_server.reload
|
59
|
+
end
|
60
|
+
|
61
|
+
desc "Completely removes the site configuration from the server (but leaves the files.)"
|
62
|
+
task :remove do
|
63
|
+
abort "Sorry, auto-removing sites is not supported on your version of Apache." unless exists?(:apache_disable_script)
|
64
|
+
|
65
|
+
run "#{sudo} rm /etc/apache2/sites-available/#{deploy_site_name}"
|
66
|
+
web_server.reload
|
67
|
+
end
|
68
|
+
|
69
|
+
desc "Enable Site"
|
70
|
+
task :enable do
|
71
|
+
abort "Sorry, auto-enabling sites is not supported on your version of Apache." unless exists?(:apache_enable_script)
|
72
|
+
|
73
|
+
run "#{sudo} #{apache_enable_script} #{deploy_site_name}"
|
74
|
+
web_server.reload
|
75
|
+
end
|
76
|
+
|
77
|
+
desc "Disable Site"
|
78
|
+
task :disable do
|
79
|
+
abort "Sorry, auto-disabling sites is not supported on your version of Apache." unless exists?(:apache_disable_script)
|
80
|
+
|
81
|
+
run "#{sudo} #{apache_disable_script} #{deploy_site_name}"
|
82
|
+
web_server.reload
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
######################################################################
|
2
|
+
# BUNDLER CHECKS #
|
3
|
+
######################################################################
|
4
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
+
namespace :capabilities do
|
6
|
+
namespace :check do
|
7
|
+
desc <<-DESC
|
8
|
+
[internal] Checks to see if all necessary Bundler capabilities variables have been set up.
|
9
|
+
DESC
|
10
|
+
task :bundler do
|
11
|
+
required_variables = [
|
12
|
+
:gem_packager_version
|
13
|
+
]
|
14
|
+
|
15
|
+
verify_variables(required_variables)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
######################################################################
|
2
|
+
# BUNDLER DEFAULTS #
|
3
|
+
######################################################################
|
4
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
+
namespace :capabilities do
|
6
|
+
namespace :defaults do
|
7
|
+
desc "[internal] Sets intelligent defaults for Bundler deployments."
|
8
|
+
task :bundler do
|
9
|
+
_cset :gem_packager_version, `gem list bundler`.match(/\((.*)\)/)[1]
|
10
|
+
set :rake, "RAILS_ENV=#{rails_env} bundle exec rake"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
######################################################################
|
2
|
+
# BUNDLER TASKS #
|
3
|
+
######################################################################
|
4
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
+
before 'gems:install', 'bundler:install'
|
6
|
+
|
7
|
+
run_task 'bundler:install', :as => manager_username
|
8
|
+
|
9
|
+
namespace :gems do
|
10
|
+
desc "Install Bundled Gems"
|
11
|
+
task :install do
|
12
|
+
run "cd #{latest_release} && bundle install --gemfile #{latest_release}/Gemfile --path #{shared_path}/bundle --deployment --quiet --without development test"
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "Update Bundled Gems"
|
16
|
+
task :update do
|
17
|
+
abort "I'm sorry Dave, but I can't let you do that. I have full control over production." if rails_env == 'production'
|
18
|
+
|
19
|
+
run "cd #{latest_release} && bundle update"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
namespace :bundler do
|
24
|
+
desc "Install Bundler"
|
25
|
+
task :install do
|
26
|
+
bundler_install_command = "gem install bundler --version #{gem_packager_version} --no-ri --no-rdoc && gem cleanup bundler"
|
27
|
+
|
28
|
+
if fetch(:capabilities).include? :rvm
|
29
|
+
run_with_rvm "#{ruby_version}@global", bundler_install_command
|
30
|
+
else
|
31
|
+
run bundler_install_command
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# CAPABILITIES CHECK #
|
3
3
|
######################################################################
|
4
4
|
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
-
|
5
|
+
before 'capabilities:check', 'load_capability_checks'
|
6
6
|
|
7
7
|
namespace :capabilities do
|
8
8
|
namespace :check do
|
@@ -1,19 +1,36 @@
|
|
1
1
|
######################################################################
|
2
|
-
# DEFAULT CAPABILITIES SETUP
|
2
|
+
# DEFAULT CAPABILITIES SETUP
|
3
|
+
#
|
4
|
+
# The 'capabilities:defaults' task hooks itself into the deployment
|
5
|
+
# stream by attaching an after hook to 'environment:defaults'.
|
6
|
+
#
|
7
|
+
# Prior to execution, all of the capabilities which were specified in
|
8
|
+
# the deploy.rb file are loaded and then each capability has its
|
9
|
+
# 'defaults' task called.
|
10
|
+
#
|
11
|
+
# All capability's defaults tasks are in the format:
|
12
|
+
# capabilities:defaults:<capability_name>
|
13
|
+
#
|
14
|
+
# Defaults tasks are there simply to set standard conventional
|
15
|
+
# standards on each capability. In almost all cases, they can
|
16
|
+
# be overridden.
|
17
|
+
#
|
18
|
+
# Defaults are also optional. If a capability doesn't require any
|
19
|
+
# environment variables to be set, it can simply omit a defaults task.
|
20
|
+
#
|
3
21
|
######################################################################
|
4
22
|
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
-
|
6
|
-
before 'capabilities:defaults', 'load_capabilities'
|
23
|
+
before 'capabilities:defaults', 'load_capability_defaults'
|
7
24
|
|
8
25
|
namespace :capabilities do
|
9
26
|
namespace :defaults do
|
10
27
|
desc <<-DESC
|
11
|
-
[internal] Installs
|
28
|
+
[internal] Installs all capabilities for the given deployment type.
|
12
29
|
|
13
30
|
Most of these values can be overridden in each application's deploy.rb file.
|
14
31
|
DESC
|
15
32
|
task :default do
|
16
|
-
defaults.send(deployment_type.to_s)
|
33
|
+
capabilities.defaults.send(deployment_type.to_s)
|
17
34
|
|
18
35
|
if exists?(:capabilities)
|
19
36
|
fetch(:capabilities).each do |capability|
|
@@ -1,16 +1,3 @@
|
|
1
|
-
######################################################################
|
2
|
-
# GIT TASKS #
|
3
|
-
######################################################################
|
4
|
-
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
-
namespace :vc do
|
6
|
-
desc <<-DESC
|
7
|
-
DESC
|
8
|
-
task :log do
|
9
|
-
set :vc_log, `git log #{previous_revision}..#{current_revision} --pretty=format:%ai:::%an:::%s`
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
1
|
######################################################################
|
15
2
|
# GIT DEFAULTS #
|
16
3
|
######################################################################
|
@@ -27,6 +14,8 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
27
14
|
set(:branch) { `git branch`.match(/\* (\S+)\s/m)[1] || raise("Couldn't determine current branch") }
|
28
15
|
set(:remote) { `git remote`.match(/(\S+)\s/m)[1] || raise("Couldn't determine default remote repository") }
|
29
16
|
ssh_options[:forward_agent] = true
|
17
|
+
|
18
|
+
set :vc_log, `git log #{previous_revision}..#{current_revision} --pretty=format:%ai:::%an:::%s`
|
30
19
|
end
|
31
20
|
end
|
32
21
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
######################################################################
|
2
|
+
# HEROKU CHECKS #
|
3
|
+
######################################################################
|
4
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
+
namespace :capabilities do
|
6
|
+
namespace :check do
|
7
|
+
desc <<-DESC
|
8
|
+
[internal] Checks to see if all necessary Heroku environment variables have been set up.
|
9
|
+
DESC
|
10
|
+
task :heroku do
|
11
|
+
required_variables = [
|
12
|
+
:deploy_site_name,
|
13
|
+
:user,
|
14
|
+
:heroku_credentials_path,
|
15
|
+
:heroku_credentials_file
|
16
|
+
]
|
17
|
+
|
18
|
+
verify_variables(required_variables)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
######################################################################
|
2
|
+
# HEROKU DEFAULTS #
|
3
|
+
######################################################################
|
4
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
+
namespace :capabilities do
|
6
|
+
namespace :defaults do
|
7
|
+
desc "[internal] Sets intelligent defaults for Heroku deployments"
|
8
|
+
task :heroku do
|
9
|
+
_cset :heroku_credentials_path, "#{ENV["HOME"]}/.heroku"
|
10
|
+
_cset :heroku_credentials_file, "#{heroku_credentials_path}/credentials"
|
11
|
+
|
12
|
+
_cset(:password) {Capistrano::CLI.password_prompt("Encrypted Heroku Password: ")}
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -33,14 +33,14 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
33
33
|
Installs a new domain for the application on the Heroku server.
|
34
34
|
DESC
|
35
35
|
task :install do
|
36
|
-
`heroku domains:add #{
|
36
|
+
`heroku domains:add #{deploy_site_name}`
|
37
37
|
end
|
38
38
|
|
39
39
|
desc <<-DESC
|
40
40
|
Removes the domain for the application from the Heroku server.
|
41
41
|
DESC
|
42
42
|
task :remove do
|
43
|
-
`heroku domains:remove #{
|
43
|
+
`heroku domains:remove #{deploy_site_name}`
|
44
44
|
end
|
45
45
|
|
46
46
|
namespace :addon do
|
@@ -110,7 +110,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
110
110
|
that are valid for a Heroku deployment.
|
111
111
|
DESC
|
112
112
|
task :raise_error do
|
113
|
-
|
113
|
+
abort "Deploying the #{rails_env} environment to Heroku. This command is invalid."
|
114
114
|
end
|
115
115
|
end
|
116
116
|
|
@@ -220,7 +220,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
220
220
|
|
221
221
|
desc "Reset database and seed fresh"
|
222
222
|
task :reset_and_seed do
|
223
|
-
|
223
|
+
abort "I'm sorry Dave, but I can't let you do that. I have full control over production." if rails_env == 'production'
|
224
224
|
db.backup
|
225
225
|
`heroku pg:reset`
|
226
226
|
`heroku rake db:seed`
|
@@ -228,7 +228,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
228
228
|
|
229
229
|
desc "Seed database"
|
230
230
|
task :seed do
|
231
|
-
|
231
|
+
abort "I'm sorry Dave, but I can't let you do that. I have full control over production." if rails_env == 'production'
|
232
232
|
db.backup
|
233
233
|
`heroku rake db:seed`
|
234
234
|
end
|
@@ -244,43 +244,3 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
244
244
|
`heroku invoke #{ENV['COMMAND']}`
|
245
245
|
end
|
246
246
|
end
|
247
|
-
|
248
|
-
######################################################################
|
249
|
-
# HEROKU CHECKS #
|
250
|
-
######################################################################
|
251
|
-
Capistrano::Configuration.instance(:must_exist).load do
|
252
|
-
namespace :capabilities do
|
253
|
-
namespace :check do
|
254
|
-
desc <<-DESC
|
255
|
-
[internal] Checks to see if all necessary Heroku environment variables have been set up.
|
256
|
-
DESC
|
257
|
-
task :heroku do
|
258
|
-
required_variables = [
|
259
|
-
:deploy_name,
|
260
|
-
:user,
|
261
|
-
:heroku_credentials_path,
|
262
|
-
:heroku_credentials_file
|
263
|
-
]
|
264
|
-
|
265
|
-
verify_variables(required_variables)
|
266
|
-
end
|
267
|
-
end
|
268
|
-
end
|
269
|
-
end
|
270
|
-
|
271
|
-
######################################################################
|
272
|
-
# HEROKU DEFAULTS #
|
273
|
-
######################################################################
|
274
|
-
Capistrano::Configuration.instance(:must_exist).load do
|
275
|
-
namespace :capabilities do
|
276
|
-
namespace :defaults do
|
277
|
-
desc "[internal] Sets intelligent defaults for Heroku deployments"
|
278
|
-
task :heroku do
|
279
|
-
_cset :heroku_credentials_path, "#{ENV["HOME"]}/.heroku"
|
280
|
-
_cset :heroku_credentials_file, "#{heroku_credentials_path}/credentials"
|
281
|
-
|
282
|
-
_cset(:password) {Capistrano::CLI.password_prompt("Encrypted Heroku Password: ")}
|
283
|
-
end
|
284
|
-
end
|
285
|
-
end
|
286
|
-
end
|