42 lines
1.2 KiB
Ruby
42 lines
1.2 KiB
Ruby
namespace :load do
|
|
task :defaults do
|
|
set :composer_roles, :all
|
|
set :composer_download_url, "https://getcomposer.org/installer"
|
|
set :composer_install_flags, "--no-dev --prefer-dist --no-interaction --optimize-autoloader"
|
|
end
|
|
end
|
|
|
|
namespace :composer do
|
|
desc "检查 Composer 是否已安装"
|
|
task :check do
|
|
on release_roles(fetch(:composer_roles)) do
|
|
next if test("[ -f #{deploy_path}/.dep/composer.phar ]")
|
|
|
|
composer_version = fetch(:composer_version, nil)
|
|
composer_version_flag = composer_version ? "-- --version=#{composer_version}" : ""
|
|
|
|
execute :mkdir, "-p", "#{deploy_path}/.dep"
|
|
execute :curl, "-sS", fetch(:composer_download_url), "|", :php, composer_version_flag
|
|
execute :mv, "composer.phar #{deploy_path}/.dep/composer.phar"
|
|
end
|
|
end
|
|
|
|
desc "执行 Composer 命令"
|
|
task :run, :command do |t, args|
|
|
args.with_defaults(:command => :list)
|
|
|
|
on release_roles(fetch(:composer_roles)) do
|
|
within release_path do
|
|
execute :php, "#{deploy_path}/.dep/composer.phar", args[:command], *args.extras
|
|
end
|
|
end
|
|
end
|
|
|
|
desc "安装应用依赖"
|
|
task :install do
|
|
invoke "composer:run", :install, fetch(:composer_install_flags)
|
|
end
|
|
|
|
after "deploy:started", "composer:check"
|
|
end
|