我正在使用 Capistrano v2.9.0。
我运行这个命令:
cap deploy:tryout -S testvar=thing
我的 deploy.rb 包含这个:
namespace :deploy do
task :tryout do
if defined? testvar
puts "param: #{testvar}\n"
else
puts "no branch!\n"
end
end
end
输出是“没有分支!”。如何从命令行传递值?我试着查看代码,我可以看到 options.rb 它将传递的参数添加到 options[:pre_vars],但这似乎是一个实例变量,我不知道如何从我的部署中访问它脚本。
最佳答案
解决方法:
选项可以通过@parent.variables 哈希访问,所以如果命令行字符串是testvar=thing
,那么@parent.variables[:testvar]
有值 string
。
这看起来真的很丑陋,但它确实有效。
编辑:
原来它也可以通过 variables[:testvar]
关于ruby - 如何将命令行参数传递给capistrano,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21575810/