ruby - 如何将命令行参数传递给capistrano

标签 ruby command-line capistrano

我正在使用 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/

相关文章:

jquery - AJAX 请求 POST 数据到 Rails Controller 给出 404

Ruby:仅在某些情况下重载运算符行为

c++ - 如何创建一个 void 数组,其大小将由用户从命令行输入指定?

capistrano - 部署+重启后 unicorn 继续使用旧代码

ruby-on-rails - 没有这样的文件或目录(public/assets/manifest*)

ruby-on-rails - 通过 capistrano 部署安装 pg 时出错

ruby-on-rails - compass-rails gem 没有在 heroku 中运行?

linux - 在终端中查看命令行表达式的实时结果?

powershell - 用于在 PowerShell 中压缩文件夹的一行?

ruby - 向 ActiveRecord 模型添加可读的字段描述