Created
February 21, 2013 02:09
-
-
Save wilr/5001388 to your computer and use it in GitHub Desktop.
Composer helpers for using with Capistrano.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set :composer_bin, false | |
set :composer_options, "--no-scripts --verbose" | |
namespace :composer do | |
desc "Gets composer and installs it" | |
task :get, :roles => :app, :except => { :no_release => true } do | |
if remote_file_exists?("#{previous_release}/composer.phar") | |
pretty_print "--> Copying Composer from previous release" | |
run "#{try_sudo} sh -c 'cp #{previous_release}/composer.phar #{latest_release}/'" | |
puts_ok | |
end | |
if !remote_file_exists?("#{latest_release}/composer.phar") | |
pretty_print "--> Downloading Composer" | |
run "#{try_sudo} sh -c 'cd #{latest_release} && curl -s http://getcomposer.org/installer | #{php_bin}'" | |
else | |
pretty_print "--> Updating Composer" | |
run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} composer.phar self-update'" | |
end | |
puts_ok | |
end | |
desc "Updates composer" | |
task :self_update, :roles => :app, :except => { :no_release => true } do | |
pretty_print "--> Updating Composer" | |
run "#{try_sudo} sh -c 'cd #{latest_release} && #{composer_bin} self-update'" | |
puts_ok | |
end | |
desc "Runs composer to install vendors from composer.lock file" | |
task :install, :roles => :app, :except => { :no_release => true } do | |
if composer_bin | |
composer.self_update | |
else | |
composer.get | |
set :composer_bin, "#{php_bin} composer.phar" | |
end | |
pretty_print "--> Installing Composer dependencies" | |
run "#{try_sudo} sh -c 'cd #{latest_release} && #{composer_bin} install #{composer_options}'" | |
puts_ok | |
end | |
desc "Runs composer to update vendors, and composer.lock file" | |
task :update, :roles => :app, :except => { :no_release => true } do | |
if composer_bin | |
composer.self_update | |
else | |
composer.get | |
set :composer_bin, "#{php_bin} composer.phar" | |
end | |
run "#{try_sudo} sh -c 'cd #{latest_release} && #{composer_bin} update #{composer_options}'" | |
end | |
desc "Dumps an optimized autoloader" | |
task :dump_autoload, :roles => :app, :except => { :no_release => true } do | |
if composer_bin | |
composer.self_update | |
else | |
composer.get | |
set :composer_bin, "#{php_bin} composer.phar" | |
end | |
run "#{try_sudo} sh -c 'cd #{latest_release} && #{composer_bin} dump-autoload --optimize'" | |
end | |
task :copy_vendors, :except => { :no_release => true } do | |
run "vendorDir=#{current_path}/vendor; if [ -d $vendorDir ] || [ -h $vendorDir ]; then cp -a $vendorDir #{latest_release}/vendor; fi;" | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment