gpt4 book ai didi

ruby-on-rails - 如果未使用 bundle exec 调用 cap deploy 如何引发错误

转载 作者:行者123 更新时间:2023-12-02 07:46:40 25 4
gpt4 key购买 nike

我刚刚遇到了一个与 capistrano 部署 gem 依赖项有关的微妙问题,我想强制执行 capistrano 的调用方式。

我怎样才能检测到 capistrano 是使用这样的“bundle exec”调用的:

bundle exec cap app deploy

不是这样的:

cap app deploy

在后一种情况下,我想通过检测 deploy.rb 文件顶部的调用方法来引发错误。

最佳答案

似乎 Bundler 在运行可执行文件时设置了 $BUNDLE_BIN_PATH 和 $BUNDLE_GEMFILE 环境变量。例如,这样做:

env >/tmp/1
bundler exec env >/tmp/2
diff -u /tmp/[12]

您会看到环境的差异。

那么在你的部署脚本中,你可以做这样的事情:

abort "You must run this using 'bundle exec ...'" unless ENV['BUNDLE_BIN_PATH'] || ENV['BUNDLE_GEMFILE']

希望这对您有所帮助。

关于ruby-on-rails - 如果未使用 bundle exec 调用 cap deploy 如何引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6542432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com