我正在构建一个Ruby脚本来循环遍历多个目录,并bundle install在所有目录上运行git命令:
dirs = ['~/code1, ~/code2, ~/code3]
dirs.each do |dir|
Dir.chdir(dir) do
`git checkout develop`
`git pull`
`bundle install`
end
end
Run Code Online (Sandbox Code Playgroud)
当我这样做时,git在正确的目录中运行,但bundler在与脚本相同的目录中运行。
我尝试使用捆绑程序的--path选项,但是那也没有完成任务。
有任何想法吗?
您的bundle install子进程可能继承了现有的Bundler环境,这将导致意外行为。
从Bundler的文档中:
任何打开子外壳的Ruby代码(例如系统,反引号或%x {})都将自动使用当前的Bundler环境。如果您需要使用不属于当前捆绑软件的Ruby命令,请使用with_clean_env方法和一个块。
因此,我会尝试这样做:
Bundler.with_clean_env do
`bundle install`
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
947 次 |
| 最近记录: |