chicken_soup 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
@@ -1,235 +0,0 @@
|
|
1
|
-
######################################################################
|
2
|
-
# APACHE TASKS #
|
3
|
-
######################################################################
|
4
|
-
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
-
on :start, 'apache:environment_detection'
|
6
|
-
|
7
|
-
run_task 'web_server:stop', :as => 'manager'
|
8
|
-
run_task 'web_server:start', :as => 'manager'
|
9
|
-
run_task 'web_server:restart', :as => 'manager'
|
10
|
-
|
11
|
-
run_task 'website:install', :as => 'manager'
|
12
|
-
run_task 'website:remove', :as => 'manager'
|
13
|
-
run_task 'website:enable', :as => 'manager'
|
14
|
-
run_task 'website:disable', :as => 'manager'
|
15
|
-
|
16
|
-
namespace :deploy do
|
17
|
-
namespace :web do
|
18
|
-
desc <<-DESC
|
19
|
-
Enables the website's application by removing the maintenance page.
|
20
|
-
DESC
|
21
|
-
task :enable do
|
22
|
-
website.maintenance_mode.disable
|
23
|
-
end
|
24
|
-
|
25
|
-
desc <<-DESC
|
26
|
-
Disables the website's application by installing the maintenance page.
|
27
|
-
DESC
|
28
|
-
task :disable do
|
29
|
-
website.maintenance_mode.enable
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
namespace :web_server do
|
35
|
-
desc "Stop Apache"
|
36
|
-
task :stop do
|
37
|
-
apache.stop
|
38
|
-
end
|
39
|
-
|
40
|
-
desc "Start Apache"
|
41
|
-
task :start do
|
42
|
-
apache.start
|
43
|
-
end
|
44
|
-
|
45
|
-
desc "Restart Apache"
|
46
|
-
task :restart do
|
47
|
-
apache.restart
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
namespace :website do
|
52
|
-
desc "Creates the site configuration for the files."
|
53
|
-
task :create do
|
54
|
-
apache.virtual_host.install
|
55
|
-
end
|
56
|
-
|
57
|
-
desc "Completely removes the site configuration from the server (but leaves the files.)"
|
58
|
-
task :remove do
|
59
|
-
apache.virtual_host.remove
|
60
|
-
end
|
61
|
-
|
62
|
-
desc "Enable Site"
|
63
|
-
task :enable do
|
64
|
-
apache.website.enable
|
65
|
-
end
|
66
|
-
|
67
|
-
desc "Disable Site"
|
68
|
-
task :disable do
|
69
|
-
apache.website.disable
|
70
|
-
end
|
71
|
-
|
72
|
-
namespace :maintenance_mode do
|
73
|
-
desc <<-DESC
|
74
|
-
Makes the application web-accessible again. Removes the \
|
75
|
-
"maintenance.html" page generated by deploy:web:disable, which (if your \
|
76
|
-
web servers are configured correctly) will make your application \
|
77
|
-
web-accessible again.
|
78
|
-
DESC
|
79
|
-
task :disable, :except => { :no_release => true } do
|
80
|
-
run "rm #{shared_path}/system/maintenance.html"
|
81
|
-
end
|
82
|
-
|
83
|
-
desc <<-DESC
|
84
|
-
Present a maintenance page to visitors. Disables your application's web \
|
85
|
-
interface by writing a "maintenance.html" file to each web server. The \
|
86
|
-
servers must be configured to detect the presence of this file, and if \
|
87
|
-
it is present, always display it instead of performing the request.
|
88
|
-
|
89
|
-
By default, the maintenance page will just say the site is down for \
|
90
|
-
"maintenance", and will be back "shortly", but you can customize the \
|
91
|
-
page by specifying the REASON and UNTIL environment variables:
|
92
|
-
|
93
|
-
$ cap deploy:web:disable \\
|
94
|
-
REASON="hardware upgrade" \\
|
95
|
-
UNTIL="12pm Central Time"
|
96
|
-
|
97
|
-
Further customization will require that you write your own task.
|
98
|
-
DESC
|
99
|
-
task :enable, :except => { :no_release => true } do
|
100
|
-
on_rollback { rm "#{shared_path}/system/maintenance.html" }
|
101
|
-
|
102
|
-
require 'erb'
|
103
|
-
deadline, reason = ENV['UNTIL'], ENV['REASON']
|
104
|
-
|
105
|
-
template = File.read("./app/views/layouts/maintenance.html.erb")
|
106
|
-
maintenance_page = ERB.new(template).result(binding)
|
107
|
-
|
108
|
-
put maintenance_page, "#{shared_path}/system/maintenance.html", :mode => 0644
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
namespace :apache do
|
114
|
-
desc "[internal] Checks to see what type of Apache installation is running on the remote."
|
115
|
-
task :environment_detection do
|
116
|
-
find_apache_control_script
|
117
|
-
|
118
|
-
if apache_control_script =~ /apache2/
|
119
|
-
set :apache_enable_script, "a2ensite"
|
120
|
-
set :apache_disable_script, "a2dissite"
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
desc "[internal] Starts the Apache webserver"
|
125
|
-
task :start do
|
126
|
-
run "#{sudo} #{apache_control_script} start"
|
127
|
-
end
|
128
|
-
|
129
|
-
desc "[internal] Stops the Apache webserver"
|
130
|
-
task :stop do
|
131
|
-
run "#{sudo} #{apache_control_script} stop"
|
132
|
-
end
|
133
|
-
|
134
|
-
desc "[internal] Stops the Apache webserver"
|
135
|
-
task :restart do
|
136
|
-
run "#{sudo} #{apache_control_script} restart"
|
137
|
-
end
|
138
|
-
|
139
|
-
desc "[internal] Reloads the Apache configurations."
|
140
|
-
task :reload do
|
141
|
-
run "#{sudo} #{apache_control_script} reload"
|
142
|
-
end
|
143
|
-
|
144
|
-
namespace :website do
|
145
|
-
desc "[internal] Enables the Apache site on the server level."
|
146
|
-
task :enable do
|
147
|
-
abort "Sorry, auto-enabling sites is not supported on your version of Apache." unless exists?(:apache_enable_script)
|
148
|
-
|
149
|
-
run "#{sudo} #{apache_enable_script} #{deploy_name}"
|
150
|
-
apache.reload
|
151
|
-
end
|
152
|
-
|
153
|
-
desc "[internal] Disables the Apache site on the server level."
|
154
|
-
task :disable do
|
155
|
-
abort "Sorry, auto-disabling sites is not supported on your version of Apache." unless exists?(:apache_disable_script)
|
156
|
-
|
157
|
-
run "#{sudo} #{apache_disable_script} #{deploy_name}"
|
158
|
-
apache.reload
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
namespace :virtual_host do
|
163
|
-
desc "[internal] Install Virtual Host"
|
164
|
-
task :install do
|
165
|
-
abort "Sorry, auto-installing sites is not supported on your version of Apache." unless exists?(:apache_disable_script)
|
166
|
-
|
167
|
-
virtual_host_config = <<-VHOST
|
168
|
-
<VirtualHost #{web_server_ip}:443>
|
169
|
-
ServerName #{deploy_name}
|
170
|
-
DocumentRoot #{deploy_to}/current/public
|
171
|
-
|
172
|
-
SSLEngine on
|
173
|
-
SSLCertificateFile /etc/ssl/certs/#{domain}.crt
|
174
|
-
SSLCertificateKeyFile /etc/ssl/certs/#{domain}.key
|
175
|
-
|
176
|
-
RailsEnv #{rails_env}
|
177
|
-
RackEnv #{rails_env}
|
178
|
-
|
179
|
-
<Directory "#{deploy_to}/current/public">
|
180
|
-
Options FollowSymLinks -MultiViews
|
181
|
-
AllowOverride all
|
182
|
-
Order allow,deny
|
183
|
-
Allow from all
|
184
|
-
</Directory>
|
185
|
-
|
186
|
-
RewriteEngine On
|
187
|
-
|
188
|
-
ErrorDocument 503 /system/maintenance.html
|
189
|
-
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
|
190
|
-
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
|
191
|
-
RewriteCond %{REQUEST_URI} !^/images/
|
192
|
-
RewriteCond %{REQUEST_URI} !^/robots.txt
|
193
|
-
RewriteCond %{REQUEST_URI} !^/sitemap
|
194
|
-
RewriteRule ^.*$ - [redirect=503,last]
|
195
|
-
|
196
|
-
ErrorLog /var/log/apache2/#{application}-errors.log
|
197
|
-
|
198
|
-
LogLevel warn
|
199
|
-
|
200
|
-
CustomLog /var/log/apache2/#{application}-access.log combined
|
201
|
-
ServerSignature On
|
202
|
-
</VirtualHost>
|
203
|
-
|
204
|
-
<VirtualHost #{web_server_ip}:80>
|
205
|
-
ServerName #{deploy_name}
|
206
|
-
|
207
|
-
Redirect permanent / https://#{deploy_name}
|
208
|
-
</VirtualHost>
|
209
|
-
VHOST
|
210
|
-
|
211
|
-
put virtual_host_config, "#{user_home}/#{deploy_name}"
|
212
|
-
run "#{sudo} mv #{user_home}/#{deploy_name} /etc/apache2/sites-available"
|
213
|
-
run "#{sudo} /etc/init.d/apache2 reload"
|
214
|
-
end
|
215
|
-
|
216
|
-
desc "[internal] Remove Virtual Host"
|
217
|
-
task :remove do
|
218
|
-
abort "Sorry, auto-removing sites is not supported on your version of Apache." unless exists?(:apache_disable_script)
|
219
|
-
|
220
|
-
run "#{sudo} rm /etc/apache2/sites-available/#{deploy_name}"
|
221
|
-
run "#{sudo} /etc/init.d/apache2 reload"
|
222
|
-
end
|
223
|
-
end
|
224
|
-
end
|
225
|
-
end
|
226
|
-
|
227
|
-
def find_apache_control_script
|
228
|
-
if remote_file_exists?("/usr/sbin/apachectl")
|
229
|
-
set :apache_control_script, "/usr/sbin/apachectl"
|
230
|
-
elsif remote_file_exists?("/usr/sbin/apache2")
|
231
|
-
set :apache_control_script, "/usr/sbin/apache2"
|
232
|
-
end
|
233
|
-
|
234
|
-
abort "Couldn't figure out your version of Apache" unless exists?(:apache_control_script)
|
235
|
-
end
|
@@ -1,68 +0,0 @@
|
|
1
|
-
######################################################################
|
2
|
-
# BUNDLER TASKS #
|
3
|
-
######################################################################
|
4
|
-
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
-
before 'gems:install', 'bundler:install'
|
6
|
-
|
7
|
-
namespace :gems do
|
8
|
-
desc "Install Bundled Gems"
|
9
|
-
task :install do
|
10
|
-
run "cd #{current_release} && bundle install --gemfile #{current_release}/Gemfile --path #{shared_path}/bundle --deployment --quiet --without development test"
|
11
|
-
end
|
12
|
-
|
13
|
-
desc "Update Bundled Gems"
|
14
|
-
task :update do
|
15
|
-
raise "I'm sorry Dave, but I can't let you do that. I have full control over production." if rails_env == 'production'
|
16
|
-
|
17
|
-
run "cd #{current_release} && bundle update"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
namespace :bundler do
|
22
|
-
desc "Install Bundler"
|
23
|
-
task :install do
|
24
|
-
bundler_install_command = "gem install bundler --version #{gem_packager_version} --no-ri --no-rdoc && gem cleanup bundler"
|
25
|
-
|
26
|
-
if fetch(:capabilities).include? :rvm
|
27
|
-
run_with_rvm "#{ruby_version}@global", bundler_install_command
|
28
|
-
else
|
29
|
-
run bundler_install_command
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
######################################################################
|
36
|
-
# BUNDLER CHECKS #
|
37
|
-
######################################################################
|
38
|
-
Capistrano::Configuration.instance(:must_exist).load do
|
39
|
-
namespace :capabilities do
|
40
|
-
namespace :check do
|
41
|
-
desc <<-DESC
|
42
|
-
[internal] Checks to see if all necessary Bundler capabilities variables have been set up.
|
43
|
-
DESC
|
44
|
-
task :bundler do
|
45
|
-
required_variables = [
|
46
|
-
:gem_packager_version
|
47
|
-
]
|
48
|
-
|
49
|
-
verify_variables(required_variables)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
######################################################################
|
56
|
-
# BUNDLER DEFAULTS #
|
57
|
-
######################################################################
|
58
|
-
Capistrano::Configuration.instance(:must_exist).load do
|
59
|
-
namespace :capabilities do
|
60
|
-
namespace :defaults do
|
61
|
-
desc "[internal] Sets intelligent defaults for Bundler deployments."
|
62
|
-
task :bundler do
|
63
|
-
_cset :gem_packager_version, `gem list bundler`.match(/\((.*)\)/)[1]
|
64
|
-
set :rake, 'bundle exec rake'
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
######################################################################
|
2
|
-
# RVM TASKS #
|
3
|
-
######################################################################
|
4
|
-
def run_with_rvm(ruby_env_string, command)
|
5
|
-
run("rvm use #{ruby_env_string} && #{command}")
|
6
|
-
end
|
7
|
-
|
8
|
-
######################################################################
|
9
|
-
# RVM CHECKS #
|
10
|
-
######################################################################
|
11
|
-
Capistrano::Configuration.instance(:must_exist).load do
|
12
|
-
namespace :capabilities do
|
13
|
-
namespace :check do
|
14
|
-
desc <<-DESC
|
15
|
-
[internal] Checks to see if all necessary RVM variables have been set up.
|
16
|
-
DESC
|
17
|
-
task :rvm do
|
18
|
-
required_variables = [
|
19
|
-
:ruby_version,
|
20
|
-
:ruby_gemset,
|
21
|
-
:rvm_ruby_string,
|
22
|
-
]
|
23
|
-
|
24
|
-
verify_variables(required_variables)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
######################################################################
|
31
|
-
# RVM DEFAULTS #
|
32
|
-
######################################################################
|
33
|
-
Capistrano::Configuration.instance(:must_exist).load do
|
34
|
-
namespace :capabilities do
|
35
|
-
namespace :defaults do
|
36
|
-
_cset :ruby_version, ENV["rvm_ruby_string"]
|
37
|
-
_cset :ruby_gemset, ENV["GEM_HOME"].split('@')[1]
|
38
|
-
|
39
|
-
_cset(:rvm_ruby_string) {ruby_gemset ? "#{ruby_version}@#{ruby_gemset}" : ruby_version}
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,109 +0,0 @@
|
|
1
|
-
######################################################################
|
2
|
-
# EMAIL NOTIFIER TASKS #
|
3
|
-
######################################################################
|
4
|
-
require 'mail'
|
5
|
-
require 'erb'
|
6
|
-
require 'chicken_soup/notifiers/email_notifier'
|
7
|
-
|
8
|
-
Capistrano::Configuration.instance(:must_exist).load do |cap|
|
9
|
-
before 'notifiers:defaults:email', 'vc:log'
|
10
|
-
after 'deploy:cleanup', 'notify:by_email'
|
11
|
-
|
12
|
-
namespace :notify do
|
13
|
-
desc <<-DESC
|
14
|
-
[internal] Sends a notification via email once a deployment is complete.
|
15
|
-
DESC
|
16
|
-
task :by_email do
|
17
|
-
if !cap[:email_notifier_client_recipients].empty?
|
18
|
-
Mail.deliver do
|
19
|
-
to cap[:email_notifier_client_recipients]
|
20
|
-
from cap[:email_notifier_sender]
|
21
|
-
subject cap[:email_notifier_subject]
|
22
|
-
body cap[:email_notifier_client_body]
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
if !cap[:email_notifier_internal_recipients].empty?
|
27
|
-
Mail.deliver do
|
28
|
-
to cap[:email_notifier_internal_recipients]
|
29
|
-
from cap[:email_notifier_sender]
|
30
|
-
subject cap[:email_notifier_subject]
|
31
|
-
body cap[:email_notifier_internal_body]
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
######################################################################
|
39
|
-
# EMAIL NOTIFIER CHECKS #
|
40
|
-
######################################################################
|
41
|
-
Capistrano::Configuration.instance(:must_exist).load do
|
42
|
-
namespace :notifiers do
|
43
|
-
namespace :check do
|
44
|
-
desc <<-DESC
|
45
|
-
[internal] Checks to see if all necessary email notification environment variables have been set up.
|
46
|
-
DESC
|
47
|
-
task :email do
|
48
|
-
required_variables = [
|
49
|
-
:email_notifier_client_recipients,
|
50
|
-
:email_notifier_internal_recipients,
|
51
|
-
:email_notifier_domain,
|
52
|
-
:email_notifier_username,
|
53
|
-
:email_notifier_password
|
54
|
-
]
|
55
|
-
|
56
|
-
verify_variables(required_variables)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
######################################################################
|
63
|
-
# EMAIL NOTIFIER DEFAULTS #
|
64
|
-
######################################################################
|
65
|
-
Capistrano::Configuration.instance(:must_exist).load do |cap|
|
66
|
-
namespace :notifiers do
|
67
|
-
namespace :defaults do
|
68
|
-
task :email do
|
69
|
-
_cset :email_notifier_format, 'html'
|
70
|
-
|
71
|
-
_cset :email_notifier_mail_method, :smtp
|
72
|
-
_cset :email_notifier_server, "smtp.gmail.com"
|
73
|
-
_cset :email_notifier_port, 587
|
74
|
-
_cset :email_notifier_authentication, 'plain'
|
75
|
-
|
76
|
-
_cset :email_notifier_mail_options, { :address => email_notifier_server,
|
77
|
-
:port => email_notifier_port,
|
78
|
-
:domain => email_notifier_domain,
|
79
|
-
:user_name => email_notifier_username,
|
80
|
-
:password => email_notifier_password,
|
81
|
-
:authentication => email_notifier_authentication,
|
82
|
-
:enable_starttls_auto => true }
|
83
|
-
|
84
|
-
_cset :email_notifier_client_recipients, []
|
85
|
-
_cset :email_notifier_internal_recipients, []
|
86
|
-
_cset :email_notifier_sender, 'theshadow@theshadowknows.com'
|
87
|
-
_cset :email_notifier_subject, "#{application.titleize} has been deployed to #{rails_env.capitalize}"
|
88
|
-
_cset :email_notifier_client_template, read_template("client_email.#{email_notifier_format}.erb")
|
89
|
-
_cset :email_notifier_internal_template, read_template("internal_email.#{email_notifier_format}.erb")
|
90
|
-
|
91
|
-
email_notifier = ChickenSoup::EmailNotifier.new(cap)
|
92
|
-
_cset :email_notifier_client_body, render_erb(email_notifier_client_template, email_notifier)
|
93
|
-
_cset :email_notifier_internal_body, render_erb(email_notifier_internal_template, email_notifier)
|
94
|
-
|
95
|
-
Mail.defaults do
|
96
|
-
delivery_method cap[:email_notifier_mail_method], cap[:email_notifier_mail_options]
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
def render_erb(template, email_info)
|
104
|
-
ERB.new(template, 0, "%<>").result(binding)
|
105
|
-
end
|
106
|
-
|
107
|
-
def read_template(template)
|
108
|
-
File.read(File.join(File.dirname(__FILE__), template))
|
109
|
-
end
|