capifony 2.1.16 → 2.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/{CHANGELOG → CHANGELOG.md} +82 -36
- data/README.md +15 -0
- data/UPGRADE.md +30 -0
- data/bin/capifony +11 -4
- data/lib/{symfony1.rb → capifony_symfony1.rb} +12 -1
- data/lib/capifony_symfony2.rb +255 -0
- data/lib/symfony2/database.rb +12 -10
- data/lib/symfony2/deploy.rb +12 -12
- data/lib/symfony2/doctrine.rb +26 -17
- data/lib/symfony2/propel.rb +11 -11
- data/lib/symfony2/symfony.rb +40 -37
- metadata +25 -9
- data/lib/symfony2.rb +0 -175
- data/lib/symfony2/output.rb +0 -48
data/{CHANGELOG → CHANGELOG.md}
RENAMED
@@ -1,4 +1,50 @@
|
|
1
|
-
|
1
|
+
### 2.2.0 / October 22, 2012
|
2
|
+
|
3
|
+
* Minor fixes
|
4
|
+
* Clean output in tests
|
5
|
+
* Fix travis build
|
6
|
+
* Dump autoloader generation
|
7
|
+
* Refactor specs
|
8
|
+
* Update CHANGELOG
|
9
|
+
* Fix #244
|
10
|
+
* Correct pretty_print on composer:get based on @simonchrz's patch
|
11
|
+
* Enable web tasks
|
12
|
+
* Update gemspec file
|
13
|
+
* Make version consistent with capistrano
|
14
|
+
* Add UPGRADE file
|
15
|
+
* Fix command again
|
16
|
+
* Fix missing method
|
17
|
+
* Fix command
|
18
|
+
* Rename files
|
19
|
+
* Improve command
|
20
|
+
* Remove old README.ja.md as it's not maintained anymore
|
21
|
+
* Add note about tests in README
|
22
|
+
* Update CHANGELOG
|
23
|
+
* Minor fixes
|
24
|
+
* Add tests for propel namespace
|
25
|
+
* Add tests for doctrine namespace
|
26
|
+
* Fix travis-ci setup
|
27
|
+
* Add more tests for the symfony namespace (Symfony2)
|
28
|
+
* Fix encoding
|
29
|
+
* Trying to fix dependencies
|
30
|
+
* Add testing tools to gemfile
|
31
|
+
* fix gemfile
|
32
|
+
* Add travis/bundler configs, bump version to 2.2.x-dev
|
33
|
+
* Introducing a test suite
|
34
|
+
* Refactored Symfony2 code
|
35
|
+
* Fix conflict with the pp gem
|
36
|
+
* cd command not found when composer self-update
|
37
|
+
* Fix #240
|
38
|
+
* Fixing spelling mistakes an code
|
39
|
+
* Fix composer tasks
|
40
|
+
* Fixing logic in deep_merge method for symfony1
|
41
|
+
* Fix symfony:doctrine:migrations:migrate when using pty by not using try_sudo. Also log current database version with level info.
|
42
|
+
* Fixed a problem with case-insensitivity. This worked on OS X, but not on Linux, because the file system is case sensitive.
|
43
|
+
* Take capistrano/ext/multistage parameter deploy_env into account when using different deploy environments.
|
44
|
+
* Avoid the unnecessary use of try_sudo to make remote dumps work, as Capifony doesn't seem to check if use_sudo is false.
|
45
|
+
* Added patch-5 branch modifications from https://github.com/leek/capifony/tree/patch-5 to enable using parameters.ini config files.
|
46
|
+
|
47
|
+
### 2.1.16 / September 25, 2012
|
2
48
|
|
3
49
|
* Add composer:dump_autoload to the finalize_update after hook
|
4
50
|
* Add new task to allow composer dump-autoload
|
@@ -7,7 +53,7 @@
|
|
7
53
|
* run "#{try_sudo}"
|
8
54
|
* Use try_sudo instead of run
|
9
55
|
|
10
|
-
|
56
|
+
### 2.1.15 / September 10, 2012
|
11
57
|
|
12
58
|
* Fix #203
|
13
59
|
* Preliminary testing seems to show that this is generally how try_sudo was meant to be implemented, and is in fact how it is required to be implemented to work with things that depend on the output of run.
|
@@ -21,11 +67,11 @@
|
|
21
67
|
* set_permissions: fix for acl method
|
22
68
|
* Fix this fucking dumb task. #195
|
23
69
|
|
24
|
-
|
70
|
+
### 2.1.14 / August 22, 2012
|
25
71
|
|
26
72
|
* Fix escaping in clear controllers #195
|
27
73
|
|
28
|
-
|
74
|
+
### 2.1.13 / August 21, 2012
|
29
75
|
|
30
76
|
* check all .php files in stead of only _app.php
|
31
77
|
* fix clear controllers to also work with try_sudo
|
@@ -39,14 +85,14 @@
|
|
39
85
|
* Fix running doctrine migrations with allocated PTY
|
40
86
|
* Update lib/symfony1.rb
|
41
87
|
|
42
|
-
|
88
|
+
### 2.1.12 / August 6, 2012
|
43
89
|
|
44
90
|
* Enable options for assets:install
|
45
91
|
* Looked for sf1 settings DB file instead of sf2 one
|
46
92
|
* Add ability to tail `dev|prod.log`
|
47
93
|
* Put remote tmp directory in a variable so that it can be overriden
|
48
94
|
|
49
|
-
|
95
|
+
### 2.1.11 / July 20, 2012
|
50
96
|
|
51
97
|
* Fix hard-coded "app" references
|
52
98
|
* Fix hard-coded path to "app"
|
@@ -58,7 +104,7 @@
|
|
58
104
|
* Fix #163
|
59
105
|
* fix elsif synthax
|
60
106
|
|
61
|
-
|
107
|
+
### 2.1.10 / July 16, 2012
|
62
108
|
|
63
109
|
* Fix CS
|
64
110
|
* Add ownership check before changing permissions
|
@@ -78,11 +124,11 @@
|
|
78
124
|
* Since `:roles` isn't used in Capifony, these need `:no_release` *at least*.
|
79
125
|
* Fixing missing `pretty_print`.
|
80
126
|
|
81
|
-
|
127
|
+
### 2.1.9 / July 3, 2012
|
82
128
|
|
83
129
|
* fixed regression
|
84
130
|
|
85
|
-
|
131
|
+
### 2.1.8 / July 2, 2012
|
86
132
|
|
87
133
|
* bugfixes
|
88
134
|
* fix database tasks to use role :db
|
@@ -96,7 +142,7 @@
|
|
96
142
|
* added human readable messages in deploy related tasks.
|
97
143
|
* removed unexistent Doctrine commands
|
98
144
|
|
99
|
-
|
145
|
+
### 2.1.7 / June 21, 2012
|
100
146
|
|
101
147
|
* added maintenance page feature for Symfony2, use symfony 1.4 tasks
|
102
148
|
(project:disable, project:enable) to do the same.
|
@@ -112,78 +158,78 @@
|
|
112
158
|
working directory.
|
113
159
|
* bugfixes.
|
114
160
|
|
115
|
-
|
161
|
+
### 2.1.6 / April 12, 2012
|
116
162
|
|
117
163
|
* bugfixes
|
118
164
|
|
119
|
-
|
165
|
+
### 2.1.3 / September 27, 2011
|
120
166
|
|
121
167
|
* propel support for Symfony2 (by @willdurand)
|
122
168
|
* cache warmup and assets install configurable (by @gigo6000)
|
123
169
|
* always use --no-debug with assetic (by @fernanDOTdo)
|
124
170
|
* fixed assetic bug (by @mbontemps)
|
125
171
|
|
126
|
-
|
172
|
+
### 2.1.2 / August 11, 2011
|
127
173
|
|
128
174
|
* fix for vendors install
|
129
175
|
|
130
|
-
|
176
|
+
### 2.1.1 / July 13, 2011
|
131
177
|
|
132
178
|
* support for rubygems 1.8
|
133
179
|
|
134
|
-
|
180
|
+
### 2.1.0 / June 24, 2011
|
135
181
|
|
136
182
|
* fully support different app path
|
137
183
|
|
138
|
-
|
184
|
+
### 2.0.9 / June 15, 2011
|
139
185
|
|
140
186
|
* migrations fixed in Symfony2
|
141
187
|
|
142
|
-
|
188
|
+
### 2.0.8 / June 14, 2011
|
143
189
|
|
144
190
|
* update_vendors functionality support (via @weaverryan)
|
145
191
|
|
146
|
-
|
192
|
+
### 2.0.7 / June 9, 2011
|
147
193
|
|
148
194
|
* more modular behavior (thanks Alif Rachmawadi)
|
149
195
|
* cache:clear command fix (thanks Marijn Huizendveld)
|
150
196
|
|
151
|
-
|
197
|
+
### 2.0.6 / May 4, 2011
|
152
198
|
|
153
199
|
* add write access to cache folder for deployer's usergroup
|
154
200
|
|
155
|
-
|
201
|
+
### 2.0.5 / May 3, 2011
|
156
202
|
|
157
203
|
* made the Symfony2 console command configurable (symfony_console) (thanks @ruudk)
|
158
204
|
* added --env=#{symfony_env_prod} to every Symfony2 console command (thanks @ruudk)
|
159
205
|
|
160
|
-
|
206
|
+
### 2.0.4 / April 23, 2011
|
161
207
|
|
162
208
|
* shared lib support in symfony1 (thanks @jakzal)
|
163
209
|
|
164
|
-
|
210
|
+
### 2.0.3 / April 16, 2011
|
165
211
|
|
166
212
|
* windows support for symfony1 database: tasks (thanks @akloboucnik)
|
167
213
|
|
168
|
-
|
214
|
+
### 2.0.2 / April 6, 2011
|
169
215
|
|
170
216
|
* db migration task refactoring (thanks @schmittjoh)
|
171
217
|
|
172
|
-
|
218
|
+
### 2.0.1 / March 30, 2011
|
173
219
|
|
174
220
|
* fixed wrong assetic command
|
175
221
|
|
176
|
-
|
222
|
+
### 2.0.0 / March 22, 2011
|
177
223
|
|
178
224
|
* optimized shared commands in symfony1 scripts
|
179
225
|
* added symfony2 deployment strategy
|
180
226
|
* added `use_orm` option to symfony1 recipes. Turn it off if you don't use ORM
|
181
227
|
|
182
|
-
|
228
|
+
### 0.4.2 / September 23, 2010
|
183
229
|
|
184
230
|
* added `symfony:doctrine:compile` task
|
185
231
|
|
186
|
-
|
232
|
+
### 0.4.1 / June 17, 2010
|
187
233
|
|
188
234
|
* added `symfony_env_local` variable, specifying local symfony environment to work with
|
189
235
|
* added third parameter (blocks) to `prompt_with_default` (as in `ask`)
|
@@ -191,46 +237,46 @@
|
|
191
237
|
* added confirmation dialogs to destructive ORM tasks
|
192
238
|
* run `project:clear-controllers` only on `prod` environment
|
193
239
|
|
194
|
-
|
240
|
+
### 0.4.0 / June 16, 2010
|
195
241
|
|
196
242
|
* added propel tasks (thanks to http://github.com/arlo)
|
197
243
|
* added orm abstraction
|
198
244
|
* added doctrine/symfony tasks
|
199
245
|
* huge refactoring of mostly everything (thanks to http://github.com/arlo)
|
200
246
|
|
201
|
-
|
247
|
+
### 0.3.3 / June 13, 2010
|
202
248
|
|
203
249
|
* added ability to change called php binary (thanks to http://github.com/xgorse)
|
204
250
|
|
205
|
-
|
251
|
+
### 0.3.2 / June 12, 2010
|
206
252
|
|
207
253
|
* fixed :finalize_update hooks (clear_controllers task now runs)
|
208
254
|
|
209
|
-
|
255
|
+
### 0.3.1 / June 11, 2010
|
210
256
|
|
211
257
|
* fixed deployment bug with new shared link instruction
|
212
258
|
|
213
|
-
|
259
|
+
### 0.3.0 / June 11, 2010
|
214
260
|
|
215
261
|
* fixed incorrect links bug (thanks to arlo)
|
216
262
|
* added database dumpers tasks
|
217
263
|
* database:move:* now uses database dumpers to actually dump
|
218
264
|
|
219
|
-
|
265
|
+
### 0.2.2 / June 6, 2010
|
220
266
|
|
221
267
|
* deployment bug with `mkdir shared/config` fixed
|
222
268
|
|
223
|
-
|
269
|
+
### 0.2.1 / June 5, 2010
|
224
270
|
|
225
271
|
* dependency fix
|
226
272
|
|
227
|
-
|
273
|
+
### 0.2.0 / June 5, 2010
|
228
274
|
|
229
275
|
* some fixes
|
230
276
|
* symfony:check_configuration task
|
231
277
|
* database move tasks
|
232
278
|
* shared folder tasks (move to_local, move to_remote)
|
233
279
|
|
234
|
-
|
280
|
+
### 0.1.0 / June 3, 2010
|
235
281
|
|
236
282
|
First ever working version.
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
Deploying symfony Applications with Capistrano
|
2
2
|
==============================================
|
3
3
|
|
4
|
+
[](http://travis-ci.org/everzet/capifony)
|
5
|
+
|
4
6
|
Capistrano is an open source tool for running scripts on multiple servers.
|
5
7
|
Its primary use is for easily deploying applications. While it was built
|
6
8
|
specifically for deploying Rails apps, it’s pretty simple to customize it
|
@@ -35,6 +37,19 @@ lot easier.
|
|
35
37
|
|
36
38
|
Read the [capifony documentation](http://capifony.org/)
|
37
39
|
|
40
|
+
## Running the test suite ##
|
41
|
+
|
42
|
+
You need a set of dependencies in order to run the capifony's test suite.
|
43
|
+
You can use **Bundler** to install these dependencies:
|
44
|
+
|
45
|
+
bundle install --gemfile=.gemfile
|
46
|
+
|
47
|
+
Then, run the tests using **Rake**:
|
48
|
+
|
49
|
+
rake spec
|
50
|
+
|
51
|
+
For more information, see the `.travis.yml` file.
|
52
|
+
|
38
53
|
|
39
54
|
## Contributors ##
|
40
55
|
|
data/UPGRADE.md
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
UPGRADE FROM 2.1.x TO 2.2.x
|
2
|
+
===========================
|
3
|
+
|
4
|
+
Upgrading your capifony configuration from **2.1.x** to **2.2.x** is quite easy.
|
5
|
+
If you don't have a custom `Capfile` file, delete it and recreate it using the
|
6
|
+
following command:
|
7
|
+
|
8
|
+
capifony .
|
9
|
+
|
10
|
+
Important: This is mandatory for both symfony 1.x and Symfony2 projects.
|
11
|
+
|
12
|
+
If you have a custom `Capfile` file, you just have to change the way you load
|
13
|
+
capifony. In capifony 2.1.x and for Symfony2 projects, the line below was used
|
14
|
+
to load capifony:
|
15
|
+
|
16
|
+
load Gem.find_files('symfony2.rb').first.to_s
|
17
|
+
|
18
|
+
You have to replace this line by the following one:
|
19
|
+
|
20
|
+
require 'capifony_symfony2'
|
21
|
+
|
22
|
+
For symfony 1.x projects, the line below was used for the same purpose:
|
23
|
+
|
24
|
+
load Gem.find_files('symfony1.rb').first.to_s
|
25
|
+
|
26
|
+
You have to replace it by the following line:
|
27
|
+
|
28
|
+
load Gem.find_files('capifony_symfony1.rb').first.to_s
|
29
|
+
|
30
|
+
That's all.
|
data/bin/capifony
CHANGED
@@ -5,6 +5,7 @@ require 'fileutils'
|
|
5
5
|
|
6
6
|
symfony_version = nil
|
7
7
|
symfony_app_path = 'app'
|
8
|
+
capifony_version = '2.2.0'
|
8
9
|
|
9
10
|
OptionParser.new do |opts|
|
10
11
|
opts.banner = "Usage: #{File.basename($0)} [path]"
|
@@ -14,6 +15,11 @@ OptionParser.new do |opts|
|
|
14
15
|
exit 0
|
15
16
|
end
|
16
17
|
|
18
|
+
opts.on("-v", "--version", "") do
|
19
|
+
puts "capifony v#{capifony_version}"
|
20
|
+
exit 0
|
21
|
+
end
|
22
|
+
|
17
23
|
opts.on("-s", "--symfony VERSION", "Capify specific symfony verion (1|2)") do |version|
|
18
24
|
symfony_version = version.to_i
|
19
25
|
end
|
@@ -38,7 +44,7 @@ elsif !File.exists?(ARGV.first)
|
|
38
44
|
elsif !File.directory?(ARGV.first)
|
39
45
|
abort "`#{ARGV.first}' is not a directory."
|
40
46
|
elsif ARGV.length > 1
|
41
|
-
abort "Too many arguments; please specify only the directory to
|
47
|
+
abort "Too many arguments; please specify only the directory to capifony."
|
42
48
|
end
|
43
49
|
|
44
50
|
def unindent(string)
|
@@ -53,8 +59,8 @@ if symfony_version == 2
|
|
53
59
|
files = {
|
54
60
|
"Capfile" => unindent(<<-FILE),
|
55
61
|
load 'deploy' if respond_to?(:namespace) # cap2 differentiator
|
56
|
-
|
57
|
-
|
62
|
+
|
63
|
+
require 'capifony_symfony2'
|
58
64
|
load '#{symfony_app_path}/config/deploy'
|
59
65
|
FILE
|
60
66
|
|
@@ -86,7 +92,8 @@ else
|
|
86
92
|
"Capfile" => unindent(<<-FILE),
|
87
93
|
load 'deploy' if respond_to?(:namespace) # cap2 differentiator
|
88
94
|
Dir['plugins/*/lib/recipes/*.rb'].each { |plugin| load(plugin) }
|
89
|
-
|
95
|
+
|
96
|
+
load Gem.find_files('capifony_symfony1.rb').first.to_s
|
90
97
|
load 'config/deploy'
|
91
98
|
FILE
|
92
99
|
|
@@ -54,8 +54,19 @@ end
|
|
54
54
|
|
55
55
|
def deep_merge(hash1, hash2)
|
56
56
|
|
57
|
+
#if both 'all' and env keys are nil break
|
58
|
+
if(hash1 == nil && hash2 == nil)
|
59
|
+
return nil
|
60
|
+
end
|
61
|
+
|
62
|
+
#the config.yml may not have 'all' key but instead 'dev' 'prod' and so on
|
63
|
+
if(hash1 == nil && hash2 != nil)
|
64
|
+
return hash2 # no need to merge
|
65
|
+
end
|
66
|
+
|
67
|
+
#if only the 'all' key is specified
|
57
68
|
#There might not be a second has to cascade to
|
58
|
-
if(hash2 == nil)
|
69
|
+
if(hash2 == nil && hash1 != nil)
|
59
70
|
return hash1;
|
60
71
|
end
|
61
72
|
hash1.merge(hash2){|key, subhash1, subhash2|
|
@@ -0,0 +1,255 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'capistrano'
|
3
|
+
require 'colored'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'inifile'
|
6
|
+
require 'yaml'
|
7
|
+
require 'zlib'
|
8
|
+
|
9
|
+
module Capifony
|
10
|
+
module Symfony2
|
11
|
+
def self.load_into(configuration)
|
12
|
+
configuration.load do
|
13
|
+
|
14
|
+
load_paths.push File.expand_path('../', __FILE__)
|
15
|
+
load 'capifony'
|
16
|
+
load 'symfony2/symfony'
|
17
|
+
load 'symfony2/database'
|
18
|
+
load 'symfony2/deploy'
|
19
|
+
load 'symfony2/doctrine'
|
20
|
+
load 'symfony2/propel'
|
21
|
+
load 'symfony2/web'
|
22
|
+
|
23
|
+
# Symfony application path
|
24
|
+
set :app_path, "app"
|
25
|
+
|
26
|
+
# Symfony web path
|
27
|
+
set :web_path, "web"
|
28
|
+
|
29
|
+
# Symfony console bin
|
30
|
+
set :symfony_console, app_path + "/console"
|
31
|
+
|
32
|
+
# Symfony log path
|
33
|
+
set :log_path, app_path + "/logs"
|
34
|
+
|
35
|
+
# Symfony cache path
|
36
|
+
set :cache_path, app_path + "/cache"
|
37
|
+
|
38
|
+
# Symfony config file path
|
39
|
+
set :app_config_path, app_path + "/config"
|
40
|
+
|
41
|
+
# Symfony config file (parameters.(ini|yml|etc...)
|
42
|
+
set :app_config_file, "parameters.yml"
|
43
|
+
|
44
|
+
# Symfony bin vendors
|
45
|
+
set :symfony_vendors, "bin/vendors"
|
46
|
+
|
47
|
+
# Symfony build_bootstrap script
|
48
|
+
set :build_bootstrap, "bin/build_bootstrap"
|
49
|
+
|
50
|
+
# Whether to use composer to install vendors.
|
51
|
+
# If set to false, it will use the bin/vendors script
|
52
|
+
set :use_composer, false
|
53
|
+
|
54
|
+
# Path to composer binary
|
55
|
+
# If set to false, Capifony will download/install composer
|
56
|
+
set :composer_bin, false
|
57
|
+
|
58
|
+
# Options to pass to composer when installing/updating
|
59
|
+
set :composer_options, "--no-scripts --verbose --prefer-dist"
|
60
|
+
|
61
|
+
# Whether to update vendors using the configured dependency manager (composer or bin/vendors)
|
62
|
+
set :update_vendors, false
|
63
|
+
|
64
|
+
# run bin/vendors script in mode (upgrade, install (faster if shared /vendor folder) or reinstall)
|
65
|
+
set :vendors_mode, "reinstall"
|
66
|
+
|
67
|
+
# Whether to run cache warmup
|
68
|
+
set :cache_warmup, true
|
69
|
+
|
70
|
+
# Use AsseticBundle
|
71
|
+
set :dump_assetic_assets, false
|
72
|
+
|
73
|
+
# Assets install
|
74
|
+
set :assets_install, true
|
75
|
+
set :assets_symlinks, false
|
76
|
+
set :assets_relative, false
|
77
|
+
|
78
|
+
# Whether to update `assets_version` in `config.yml`
|
79
|
+
set :update_assets_version, false
|
80
|
+
|
81
|
+
# Need to clear *_dev controllers
|
82
|
+
set :clear_controllers, true
|
83
|
+
|
84
|
+
# Files that need to remain the same between deploys
|
85
|
+
set :shared_files, false
|
86
|
+
|
87
|
+
# Dirs that need to remain the same between deploys (shared dirs)
|
88
|
+
set :shared_children, [log_path, web_path + "/uploads"]
|
89
|
+
|
90
|
+
# Asset folders (that need to be timestamped)
|
91
|
+
set :asset_children, [web_path + "/css", web_path + "/images", web_path + "/js"]
|
92
|
+
|
93
|
+
# Dirs that need to be writable by the HTTP Server (i.e. cache, log dirs)
|
94
|
+
set :writable_dirs, [log_path, cache_path]
|
95
|
+
|
96
|
+
# Name used by the Web Server (i.e. www-data for Apache)
|
97
|
+
set :webserver_user, "www-data"
|
98
|
+
|
99
|
+
# Method used to set permissions (:chmod, :acl, or :chown)
|
100
|
+
set :permission_method, false
|
101
|
+
|
102
|
+
# Model manager: (doctrine, propel)
|
103
|
+
set :model_manager, "doctrine"
|
104
|
+
|
105
|
+
# Symfony2 version
|
106
|
+
set(:symfony_version) { guess_symfony_version }
|
107
|
+
|
108
|
+
# If set to false, it will never ask for confirmations (migrations task for instance)
|
109
|
+
# Use it carefully, really!
|
110
|
+
set :interactive_mode, true
|
111
|
+
|
112
|
+
def load_database_config(data, env)
|
113
|
+
read_parameters(data)['parameters']
|
114
|
+
end
|
115
|
+
|
116
|
+
def read_parameters(data)
|
117
|
+
if '.ini' === File.extname(app_config_file) then
|
118
|
+
File.readable?(data) ? IniFile::load(data) : IniFile.new(data)
|
119
|
+
else
|
120
|
+
YAML::load(data)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
def guess_symfony_version
|
125
|
+
capture("cd #{latest_release} && #{php_bin} #{symfony_console} --version |cut -d \" \" -f 3")
|
126
|
+
end
|
127
|
+
|
128
|
+
def remote_file_exists?(full_path)
|
129
|
+
'true' == capture("if [ -e #{full_path} ]; then echo 'true'; fi").strip
|
130
|
+
end
|
131
|
+
|
132
|
+
def remote_command_exists?(command)
|
133
|
+
'true' == capture("if [ -x \"$(which #{command})\" ]; then echo 'true'; fi").strip
|
134
|
+
end
|
135
|
+
|
136
|
+
STDOUT.sync
|
137
|
+
$error = false
|
138
|
+
$pretty_errors_defined = false
|
139
|
+
|
140
|
+
# Be less verbose by default
|
141
|
+
logger.level = Capistrano::Logger::IMPORTANT
|
142
|
+
|
143
|
+
def capifony_pretty_print(msg)
|
144
|
+
if logger.level == Capistrano::Logger::IMPORTANT
|
145
|
+
pretty_errors
|
146
|
+
|
147
|
+
msg = msg.slice(0, 57)
|
148
|
+
msg << '.' * (60 - msg.size)
|
149
|
+
print msg
|
150
|
+
else
|
151
|
+
puts msg.green
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def capifony_puts_ok
|
156
|
+
if logger.level == Capistrano::Logger::IMPORTANT && !$error
|
157
|
+
puts '✔'.green
|
158
|
+
end
|
159
|
+
|
160
|
+
$error = false
|
161
|
+
end
|
162
|
+
|
163
|
+
def pretty_errors
|
164
|
+
if !$pretty_errors_defined
|
165
|
+
$pretty_errors_defined = true
|
166
|
+
|
167
|
+
class << $stderr
|
168
|
+
@@firstLine = true
|
169
|
+
alias _write write
|
170
|
+
|
171
|
+
def write(s)
|
172
|
+
if @@firstLine
|
173
|
+
s = '✘' << "\n" << s
|
174
|
+
@@firstLine = false
|
175
|
+
end
|
176
|
+
|
177
|
+
_write(s.red)
|
178
|
+
$error = true
|
179
|
+
end
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
after "deploy:finalize_update" do
|
185
|
+
if use_composer
|
186
|
+
if update_vendors
|
187
|
+
symfony.composer.update
|
188
|
+
else
|
189
|
+
symfony.composer.install
|
190
|
+
end
|
191
|
+
else
|
192
|
+
if update_vendors
|
193
|
+
vendors_mode.chomp # To remove trailing whiteline
|
194
|
+
case vendors_mode
|
195
|
+
when "upgrade" then symfony.vendors.upgrade
|
196
|
+
when "install" then symfony.vendors.install
|
197
|
+
when "reinstall" then symfony.vendors.reinstall
|
198
|
+
end
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
symfony.bootstrap.build
|
203
|
+
|
204
|
+
if model_manager == "propel"
|
205
|
+
symfony.propel.build.model
|
206
|
+
end
|
207
|
+
|
208
|
+
if use_composer
|
209
|
+
symfony.composer.dump_autoload
|
210
|
+
end
|
211
|
+
|
212
|
+
if assets_install
|
213
|
+
symfony.assets.install # Publish bundle assets
|
214
|
+
end
|
215
|
+
|
216
|
+
if update_assets_version
|
217
|
+
symfony.assets.update_version # Update `assets_version`
|
218
|
+
end
|
219
|
+
|
220
|
+
if cache_warmup
|
221
|
+
symfony.cache.warmup # Warmup clean cache
|
222
|
+
end
|
223
|
+
|
224
|
+
if dump_assetic_assets
|
225
|
+
symfony.assetic.dump # Dump assetic assets
|
226
|
+
end
|
227
|
+
|
228
|
+
if clear_controllers
|
229
|
+
symfony.project.clear_controllers
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
233
|
+
before "deploy:update_code" do
|
234
|
+
msg = "--> Updating code base with #{deploy_via} strategy"
|
235
|
+
|
236
|
+
if logger.level == Capistrano::Logger::IMPORTANT
|
237
|
+
pretty_errors
|
238
|
+
puts msg
|
239
|
+
else
|
240
|
+
puts msg.green
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
after "deploy:create_symlink" do
|
245
|
+
puts "--> Successfully deployed!".green
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
end
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
if Capistrano::Configuration.instance
|
254
|
+
Capifony::Symfony2.load_into(Capistrano::Configuration.instance)
|
255
|
+
end
|