Да, есть специальная переменная, которую вы можете использовать.Эта переменная ("$ CAPISTRANO: HOST $") должна быть помещена в имя файла назначения.Capistrano будет интерполировать его с именем хоста, с которого он в данный момент передает файлы. *
Ваш код теперь будет выглядеть так:
namespace :log do
desc "Get production log files"
task :get_prod, :roles => :app do
download("#{shared_path}/log/production.log", "log/production.$CAPISTRANO:HOST$.log")
end
end
Пожалуйста, обратите внимание, чтоЯ также использовал переменную shared_path , чтобы сделать код более сухим.Рекомендуется хранить конфигурацию в одном месте.
* Исходный код для интерполяции строк находится в строке 194 lib / capistrano / Transfer.rb (в Capistrano 2.5.19):
...
def normalize(argument, session)
if argument.is_a?(String)
argument.gsub(/\$CAPISTRANO:HOST\$/, session.xserver.host)
elsif argument.respond_to?(:read)
...
Общий совет: если вы попытаетесь сначала найти что-то в интернете, а когда вы его там не найдете, то посмотрите в исходном коде (он не кусается ипозволяет узнать, как работает инструмент, с которым вы работаете).