forkcms_deploy 2.6.1 → 2.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c2026ca7e6c426ffe5251acf1d825fb8f30ef4a7
4
- data.tar.gz: 5a0ef427964902145beca09828e4a008a9368d6a
3
+ metadata.gz: fa007e25c8e3c0ea0ef9372fbf0906c1e2b0d7d9
4
+ data.tar.gz: cbc44ad21fa8b6558ff01654fec8693b59f1c728
5
5
  SHA512:
6
- metadata.gz: 52b8e0cc6148ab0fce9e8d32760955ba154b59c79503f45ec9798882829072af1973fa6ce05b2442937f32da4e4201ed4353a6db6e20f1965e65de97bb72d212
7
- data.tar.gz: d5a0992ea51b544e939178b72a54db2c49180b58881b6ae50ce5cba1be40cba171c492f77ebdc9339c1e3234898d86da94fddf44efedd41e4e02132930f5acce
6
+ metadata.gz: 65e955dd8c610be5a6cb3452402c98cc025f87892705853605d3602918dd4ae5269b45ff31f4821516fb5186fc8ebfaf233e5e75b38a6a1a39af40794de247fe
7
+ data.tar.gz: 4e3f1650c5eeadf6a42297d2bbc855813e07db74d982eefecfe40bfa255208ba986fae8f3e620821c4aebe19e8c9456a05995f7fb1caf52796b99c32f71820bf
data/Rakefile CHANGED
@@ -6,7 +6,7 @@ begin
6
6
  gemspec.description = "Deployment for ForkCMS with Capistrano"
7
7
  gemspec.email = "info@sumocoders.be"
8
8
  gemspec.homepage = "https://github.com/sumocoders/forkcms_deploy"
9
- gemspec.authors = ['Tijs Verkoyen', 'Jan De Poorter', 'Sam Tubbax']
9
+ gemspec.authors = ['Tijs Verkoyen', 'Jan De Poorter', 'Sam Tubbax', 'Wouter Sioen']
10
10
  gemspec.add_dependency 'capistrano', '>=2.0.0'
11
11
  gemspec.license = 'MIT'
12
12
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.6.1
1
+ 2.7.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "forkcms_deploy"
8
- s.version = "2.6.1"
8
+ s.version = "2.7.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Tijs Verkoyen", "Jan De Poorter", "Sam Tubbax"]
12
- s.date = "2015-02-23"
11
+ s.authors = ["Tijs Verkoyen", "Jan De Poorter", "Sam Tubbax", "Wouter Sioen"]
12
+ s.date = "2015-03-17"
13
13
  s.description = "Deployment for ForkCMS with Capistrano"
14
14
  s.email = "info@sumocoders.be"
15
15
  s.extra_rdoc_files = [
@@ -31,6 +31,8 @@ Gem::Specification.new do |s|
31
31
  "lib/forkcms_deploy/forkcms_3.rb",
32
32
  "lib/forkcms_deploy/forkcms_default.rb",
33
33
  "lib/forkcms_deploy/overwrites.rb",
34
+ "lib/maintenance/.htaccess",
35
+ "lib/maintenance/index.html",
34
36
  "test/test_forkcms_deploy.rb"
35
37
  ]
36
38
  s.homepage = "https://github.com/sumocoders/forkcms_deploy"
@@ -13,7 +13,7 @@ configuration.load do
13
13
  composer.install_composer
14
14
  run %{
15
15
  cd #{latest_release} &&
16
- php -d 'suhosin.executor.include.whitelist = phar' -d 'date.timezone = UTC' #{shared_path}/composer.phar install
16
+ php -d 'suhosin.executor.include.whitelist = phar' -d 'date.timezone = UTC' #{shared_path}/composer.phar install -o
17
17
  }
18
18
  end
19
19
 
@@ -24,4 +24,4 @@ configuration.load do
24
24
  }
25
25
  end
26
26
  end
27
- end
27
+ end
@@ -15,7 +15,7 @@ configuration.load do
15
15
  composer.install_composer
16
16
  run %{
17
17
  cd #{latest_release} &&
18
- php -d 'suhosin.executor.include.whitelist = phar' -d 'date.timezone = UTC' #{shared_path}/composer.phar install
18
+ php -d 'suhosin.executor.include.whitelist = phar' -d 'date.timezone = UTC' #{shared_path}/composer.phar install -o
19
19
  }
20
20
  end
21
21
 
@@ -43,4 +43,4 @@ configuration.load do
43
43
  }
44
44
  end
45
45
  end
46
- end
46
+ end
@@ -15,7 +15,7 @@ configuration.load do
15
15
  composer.install_composer
16
16
  run %{
17
17
  cd #{latest_release} &&
18
- php -d 'suhosin.executor.include.whitelist = phar' -d 'date.timezone = UTC' #{shared_path}/composer.phar install
18
+ php -d 'suhosin.executor.include.whitelist = phar' -d 'date.timezone = UTC' #{shared_path}/composer.phar install -o
19
19
  }
20
20
  end
21
21
 
@@ -42,7 +42,7 @@ configuration.load do
42
42
  ln -sf #{shared_path}/install/installed.txt #{release_path}/src/Install/Cache/installed.txt
43
43
  }
44
44
  end
45
-
45
+
46
46
  desc 'Clear the frontend and backend cache-folders'
47
47
  task :clear_cached do
48
48
  # remove frontend cached data
@@ -67,7 +67,7 @@ configuration.load do
67
67
  rm -rf #{current_path}/src/Backend/Cache/CompiledTemplates/*
68
68
  }
69
69
  end
70
-
70
+
71
71
  desc 'Create needed symlinks'
72
72
  task :link_files do
73
73
  # get the list of folders in /frontend/files
@@ -83,6 +83,6 @@ configuration.load do
83
83
  ln -s #{shared_path}/files/#{folder} #{release_path}/src/Frontend/Files/#{folder}
84
84
  }
85
85
  end
86
- end
86
+ end
87
87
  end
88
- end
88
+ end
@@ -15,7 +15,7 @@ configuration.load do
15
15
  composer.install_composer
16
16
  run %{
17
17
  cd #{latest_release} &&
18
- php -d 'suhosin.executor.include.whitelist = phar' -d 'date.timezone = UTC' #{shared_path}/composer.phar install
18
+ php -d 'suhosin.executor.include.whitelist = phar' -d 'date.timezone = UTC' #{shared_path}/composer.phar install -o
19
19
  }
20
20
  end
21
21
 
@@ -1,3 +1,5 @@
1
+ require 'yaml'
2
+
1
3
  configuration = Capistrano::Configuration.respond_to?(:instance) ? Capistrano::Configuration.instance(:must_exist) : Capistrano.configuration(:must_exist)
2
4
 
3
5
  configuration.load do
@@ -7,6 +9,7 @@ configuration.load do
7
9
  # custom events configuration
8
10
  after 'deploy:setup' do
9
11
  forkcms.link_document_root
12
+ migrations.prepare
10
13
  end
11
14
 
12
15
  after 'deploy:update_code' do
@@ -14,6 +17,10 @@ configuration.load do
14
17
  forkcms.link_files
15
18
  end
16
19
 
20
+ before 'deploy:create_symlink' do
21
+ migrations.execute
22
+ end
23
+
17
24
  # Fork CMS specific tasks
18
25
  namespace :forkcms do
19
26
  desc 'Clear the frontend and backend cache-folders'
@@ -63,7 +70,7 @@ configuration.load do
63
70
  }
64
71
 
65
72
  # symlink the globals
66
- run %{
73
+ run %{
67
74
  ln -sf #{shared_path}/config/library/globals_backend.php #{release_path}/library/globals_backend.php &&
68
75
  ln -sf #{shared_path}/config/library/globals_frontend.php #{release_path}/library/globals_frontend.php &&
69
76
  ln -sf #{shared_path}/config/library/globals.php #{release_path}/library/globals.php &&
@@ -81,8 +88,8 @@ configuration.load do
81
88
  warn "Warning: Document root (#{document_root}) already exists"
82
89
  warn 'to link it to the Fork deploy issue the following command:'
83
90
  warn ' ln -sf #{current_path} #{document_root}'
84
- end
85
- end
91
+ end
92
+ end
86
93
 
87
94
  desc 'Create needed symlinks'
88
95
  task :link_files do
@@ -99,6 +106,138 @@ configuration.load do
99
106
  ln -s #{shared_path}/files/#{folder} #{release_path}/frontend/files/#{folder}
100
107
  }
101
108
  end
102
- end
109
+ end
110
+ end
111
+
112
+ namespace :migrations do
113
+ desc 'prepares the server for running fork migrations'
114
+ task :prepare do
115
+ # Check if the migrations file exists.
116
+ migrationsFileExists = capture("if [ -f #{shared_path}/executed_migrations ]; then echo 'yes'; fi").chomp
117
+
118
+ # Only create the file if it doesn't exists.
119
+ unless migrationsFileExists == 'yes'
120
+ # Create an empty executed_migrations file
121
+ put '', "#{shared_path}/executed_migrations"
122
+ end
123
+
124
+ # Create a maintenance folder containing the index page from our gem
125
+ maintenance_path = File.dirname(__FILE__)
126
+ maintenance_path = "#{maintenance_path}/../maintenance"
127
+ run "mkdir #{shared_path}/maintenance"
128
+
129
+ # copy the contents of the index.html file to our shared folder
130
+ File.open("#{maintenance_path}/index.html", "rb") do |f|
131
+ put f.read, "#{shared_path}/maintenance/index.html"
132
+ f.close
133
+ end
134
+
135
+ # copy the contents of the .htaccess file to our shared folder
136
+ File.open("#{maintenance_path}/.htaccess", "rb") do |f|
137
+ put f.read, "#{shared_path}/maintenance/.htaccess"
138
+ f.close
139
+ end
140
+ end
141
+
142
+ desc 'fills in the executed_migrations on first deploy'
143
+ task :first_deploy do
144
+ # Put all items in the migrations folder in the executed_migrations file
145
+ # When doing a deploy:setup, we expect the database to already contain
146
+ # The migrations (so a clean copy of the database should be available
147
+ # when doing a setup)
148
+ folders = capture("if [ -e #{release_path}/migrations ]; then ls -1 #{release_path}/migrations; fi").split(/\r?\n/)
149
+
150
+ folders.each do |dirname|
151
+ run "echo #{dirname} | tee -a #{shared_path}/executed_migrations"
152
+ end
153
+ end
154
+
155
+ desc 'runs the migrations'
156
+ task :execute do
157
+ # If the current symlink doesn't exist yet, we're on a first deploy
158
+ currentDirectoryExists = capture("if [ ! -e #{current_path} ]; then echo 'yes'; fi").chomp
159
+ if currentDirectoryExists == 'yes'
160
+ migrations.first_deploy
161
+ end
162
+
163
+ # Check if there are new migrations found
164
+ folders = capture("if [ -e #{release_path}/migrations ]; then ls -1 #{release_path}/migrations; fi").split(/\r?\n/)
165
+
166
+ if folders.length > 0
167
+ executedMigrations = capture("cat #{shared_path}/executed_migrations").chomp.split(/\r?\n/)
168
+ migrationsToExecute = Array.new
169
+
170
+ # Fetch all migration directories that aren't executed yet
171
+ folders.each do |dirname|
172
+ migrationsToExecute.push(dirname) if executedMigrations.index(dirname) == nil
173
+ end
174
+
175
+ if migrationsToExecute.length > 0
176
+ # This can take a while and can go wrong. let's show a maintenance page
177
+ # and make sure we can put back the database
178
+ migrations.symlink_maintenance
179
+ migrations.backup_database
180
+ on_rollback { migrations.rollback }
181
+
182
+ # run all migrations
183
+ migrationsToExecute.each do |dirname|
184
+ migrationpath = "#{release_path}/migrations/#{dirname}"
185
+ migrationFiles = capture("ls -1 #{migrationpath}").split(/\r?\n/)
186
+
187
+ migrationFiles.each do |filename|
188
+ run "cd #{release_path}/tools && php install_locale.php -f #{migrationpath}/#{filename} -o" if filename.index('locale.xml') != nil
189
+ run "cd #{release_path} && php #{migrationpath}/#{filename}" if filename.index('update.php') != nil
190
+ if filename.index('update.sql') != nil
191
+ set :mysql_update_file, "#{migrationpath}/#{filename}"
192
+ migrations.mysql_update
193
+ end
194
+ end
195
+ end
196
+
197
+ # all migrations where executed successfully, put them in the
198
+ # executed_migrations file
199
+ migrationsToExecute.each do |dirname|
200
+ run "echo #{dirname} | tee -a #{shared_path}/executed_migrations"
201
+ end
202
+
203
+ # symlink the root back
204
+ migrations.symlink_root
205
+ end
206
+ end
207
+ end
208
+
209
+ desc 'shows a maintenance page'
210
+ task :symlink_maintenance do
211
+ run "rm -rf #{document_root} && ln -sf #{shared_path}/maintenance #{document_root}"
212
+ end
213
+
214
+ desc 'Symlink back the document root with the current deployed version.'
215
+ task :symlink_root do
216
+ run "rm -rf #{document_root} && ln -sf #{current_path} #{document_root}"
217
+ end
218
+
219
+ desc 'backs up the database'
220
+ task :backup_database do
221
+ parametersContent = capture "cat #{shared_path}/config/parameters.yml"
222
+ yaml = YAML::load(parametersContent.gsub("%", ""))
223
+
224
+ run "mysqldump --default-character-set='utf8' --host=#{yaml['parameters']['database.host']} --port=#{yaml['parameters']['database.port']} --user=#{yaml['parameters']['database.user']} --password=#{yaml['parameters']['database.password']} #{yaml['parameters']['database.name']} > #{release_path}/mysql_backup.sql"
225
+ end
226
+
227
+ desc 'puts back the database'
228
+ task :rollback do
229
+ set :mysql_update_file, "#{migrationpath}/#{filename}"
230
+ migrations.mysql_update
231
+
232
+ migrations.symlink_root
233
+ end
234
+
235
+ desc 'updates mysql with a certain (sql) file'
236
+ task :mysql_update do
237
+ parametersContent = capture "cat #{shared_path}/config/parameters.yml"
238
+ yaml = YAML::load(parametersContent.gsub("%", ""))
239
+
240
+ run "mysql --default-character-set='utf8' --host=#{yaml['parameters']['database.host']} --port=#{yaml['parameters']['database.port']} --user=#{yaml['parameters']['database.user']} --password=#{yaml['parameters']['database.password']} #{yaml['parameters']['database.name']} < #{mysql_update_file}"
241
+ end
103
242
  end
104
- end
243
+ end
@@ -0,0 +1,10 @@
1
+ # All url's will be see the maintenance page (index.html)
2
+ # This way they are back to there original page after maintenance is finished.
3
+ <IfModule mod_rewrite.c>
4
+ # nice urls
5
+ RewriteEngine On
6
+ RewriteBase /
7
+
8
+ # handle urls
9
+ RewriteRule . index.html [NC,L]
10
+ </IfModule>
@@ -0,0 +1,75 @@
1
+ <!DOCTYPE HTML>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Maintenance break!</title>
6
+ <style type="text/css">
7
+ body
8
+ {
9
+ background-color: #ebf3f9;
10
+ margin: 0;
11
+ padding: 0;
12
+ border: 0;
13
+ font-family: Arial;
14
+ }
15
+ h1
16
+ {
17
+ color: #333333;
18
+ font-size: 20px;
19
+ line-height: 0;
20
+ margin-bottom: 30px;
21
+ }
22
+ p
23
+ {
24
+ color: #666666;
25
+ font-size: 13px;
26
+ }
27
+ #container
28
+ {
29
+ position: absolute;
30
+ left: 50%;
31
+ top: 50%;
32
+ width: 340px;
33
+ height: 471px;
34
+ margin-left: -200px;
35
+ margin-top: -250px;
36
+ }
37
+ #balloon
38
+ {
39
+ background-color: #FFF;
40
+ width: 340px;
41
+ padding: 30px;
42
+ border: 1px solid #c3c3c3;
43
+ -webkit-border-radius: 3px;
44
+ -moz-border-radius: 3px;
45
+ border-radius: 3px;
46
+ }
47
+ #triangle
48
+ {
49
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAVCAYAAAA0GqweAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA7VpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTg3MUZFMDQzMzFEMEEzNUUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzJDQTBBQzJBNzM2MTFFMUI1MEM5QzEwRkFDRTlENTYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzJDQTBBQzFBNzM2MTFFMUI1MEM5QzEwRkFDRTlENTYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGNzdGMTE3NDA3MjA2ODExOTJCMEZDMUY0NjNBQjdBMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0Q5NjczNzYxNDgxMUUwOTA4Q0VFMzEzNEJGNDExMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpGPG08AAAC+SURBVHjazNYxDsMgDAVQF4VrcNRW6jmZWDgEQ9svdSBRCLZxEv4A5rO8CfGIMX5CCOS9p5lSSqGUErmc8xsDitlwsLnf+TUTssbB5v79FMgtDp2r7m9F7uG2wNuQLdwe8HLkEa4FvAzZwx0BT0dycD3gaUgujgM0R0pwXKAZUoqTAIeRGpwUqEZqcRqgGDmC0wLZyFHcCLCLtMCNAptIKxyyGLy7QGJ/4meOWOGsgCskFiucJbBGkhUO+QowAHLmWpHUFvdBAAAAAElFTkSuQmCC);
50
+ margin-left: 180px;
51
+ margin-top: -1px;
52
+ width: 40px;
53
+ height: 21px;
54
+ }
55
+ #bottom
56
+ {
57
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAEPCAYAAABsj5JaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA7VpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTg3MUZFMDQzMzFEMEEzNUUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzJDQTBBQkVBNzM2MTFFMUI1MEM5QzEwRkFDRTlENTYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzJDQTBBQkRBNzM2MTFFMUI1MEM5QzEwRkFDRTlENTYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGNzdGMTE3NDA3MjA2ODExOTJCMEZDMUY0NjNBQjdB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);
58
+ width: 400px;
59
+ height: 271px;
60
+ margin-top: 10px;
61
+ }
62
+
63
+ </style>
64
+ </head>
65
+ <body>
66
+ <div id="container">
67
+ <div id="balloon">
68
+ <h1>Maintenance break!</h1>
69
+ <p>Our web wizards are doing some maintenance magic on the site. Go grab a cup of coffee, we'll be back up and running asap.</p>
70
+ </div>
71
+ <div id="triangle">&nbsp;</div>
72
+ <div id="bottom">&nbsp;</div>
73
+ </div>
74
+ </body>
75
+ </html>
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: forkcms_deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.1
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tijs Verkoyen
8
8
  - Jan De Poorter
9
9
  - Sam Tubbax
10
+ - Wouter Sioen
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2015-02-23 00:00:00.000000000 Z
14
+ date: 2015-03-17 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: capistrano
@@ -48,6 +49,8 @@ files:
48
49
  - lib/forkcms_deploy/forkcms_3.rb
49
50
  - lib/forkcms_deploy/forkcms_default.rb
50
51
  - lib/forkcms_deploy/overwrites.rb
52
+ - lib/maintenance/.htaccess
53
+ - lib/maintenance/index.html
51
54
  - test/test_forkcms_deploy.rb
52
55
  homepage: https://github.com/sumocoders/forkcms_deploy
53
56
  licenses: