2014-12-15 2 views
0

Я пытаюсь написать задачу Rake в моем deploy.rb, который получает массив аргументов. Я проведу его через капистрано.Capistrano 2 - передать аргументы массива в задачу Rake

Предполагая, что задача, как следующее:

desc "my task" 
task :mytask, [:arguments] => :environment do |t, args| 
    puts 'hello' 
end 

При попытке запуска cap mytask['arg1 arg2 arg3'], я получаю следующее:

the task `mytask["arg1 arg2 arg3"]' does not exist 

Любые идеи? У меня есть задача, определенная так, что я запускаю локально без каких-либо проблем, но определение таких задач, как это выполняется с помощью cap, не работает.

ПРИМЕЧАНИЕ: работает cap mytask без части аргументов. Это, очевидно, не то, что я хочу.

ответ

0

Задачи рейка определяются строкой и вызываются через Rake :: Task ["name"] внутренне. Если cap обрабатывает ваш массив как часть строки имени задачи, он не будет работать.

Как 'mytask' != 'mytask["arg1 arg2 arg3"]'

+0

Мой вопрос заключается в том, чтобы заставить его работать –

+0

жаль, что я не могу помочь вам в дальнейшем, надеялся я могу привести вас в правильном направлении, давая вам причину его (вероятно) терпит неудачу. Вы могли бы искать другой способ передать параметры в задачу capistrano. – dfherr

+0

@n_x_l также есть хорошая возможность, что capistrano 2 не поддерживает эту функцию рейка. Я обнаружил, что Capistrano 3 должен поддерживать его таким образом, но не смог найти источник, если 2 тоже. Исходный код настолько отличается, что это очень возможно, что он не делает. – dfherr

Смежные вопросы