Синтаксическая ошибка в Capistrano deploy.rb - PullRequest
0 голосов
/ 16 марта 2012

Я работаю с Capistrano для автоматизации развертывания приложения PHP Zend Framework. Я добился определенного прогресса, но одна ошибка полностью озадачила меня. Все примеры рецептов капистрано, которые я могу найти, используют один и тот же стиль URl (пример здесь http://ryanflorence.com/deploying-with-capistrano-without-rails/)

В моем deploy.rb я установил URL хранилища, как показано ниже

set :repository, "ssh://git@github.com/satyamagarwala/app.git"

Я получаю эту ошибку, которая, кажется, происходит из вышеуказанной строки

/Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:93:in `instance_eval': ./config/deploy.rb:12: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' (SyntaxError)
set :repository, "ssh://git@github.com/satyamagarwala...
               ^
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:93:in `load'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:172:in `load_from_file'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:89:in `load'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:86:in `block in load'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:86:in `each'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:86:in `load'
from Capfile:5:in `load'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:93:in `instance_eval'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:93:in `load'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:172:in `load_from_file'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:89:in `load'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:86:in `block in load'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:86:in `each'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/configuration/loading.rb:86:in `load'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/cli/execute.rb:65:in `block in load_recipes'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/cli/execute.rb:65:in `each'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/cli/execute.rb:65:in `load_recipes'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/cli/execute.rb:31:in `execute!'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/lib/capistrano/cli/execute.rb:14:in `execute'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/gems/capistrano-2.11.2/bin/cap:4:in `<top (required)>'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/bin/cap:19:in `load'
from /Users/satyam/.rvm/gems/ruby-1.9.2-p180/bin/cap:19:in `<main>'

Я видел этот поток Синтаксическая ошибка, неожиданная ':' , которая говорит о том, что a: может быть ошибочно принято за разделитель. Я попытался поместить URL-адрес git в круглые скобки, но это, похоже, не работает.

Ценю помощь!

Satyam

Редактировать

Я пошел на конечности и попробовал следующее

set :repository, "abcd" 

и это дало мне точно такую ​​же ошибку, которая заставляет меня думать, что это не проблема синтаксиса, связанная с двоеточием. Не уверен, в чем проблема.

Ответы [ 2 ]

1 голос
/ 17 марта 2012

Хорошо, это может звучать смешно (я боролся с этим в течение последних трех часов, так что поверьте мне, я сейчас немного удивлен)

Эта строка была скопирована с веб-страницы

set :repository, "ssh://git@github.com/satyamagarwala/app.git"

и пробел после, кажется, проблема. Я просто удалил его и набрал снова, и кажется, что это решило проблему. Я воспроизвел эффект несколько раз, используя отмену / повтор. Уверен, что это так. Весь мой сценарий работает, как и ожидалось.

Возможно, там был какой-то скрытый персонаж? Если у кого-то есть объяснение этому, я хотел бы знать, что происходит.

0 голосов
/ 16 марта 2012

Вы можете удалить ssh://, и он все равно должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...