【发布时间】:2013-02-14 10:30:49
【问题描述】:
背景
首先了解一下这个问题的背景知识:Ruby on Rails 最近存在一些安全问题。所以我们需要更新我们项目的 Rails 版本。如果你有几个,如果你手工做的话,它会很快变老......所以我想我可以为此创建一个 Thor 任务。
问题
现在效果很好!但!在安装新版本的 rails 时,我需要尊重每个项目的 .rvmrc 文件。我希望这个脚本尽快开源,但我想先解决不尊重 .rvmrc 文件的问题。
所以我需要的是一种在我切换到目录以更新 Rails 版本时使用正确的 RVM ruby 版本/gemset 的方法。
如何做到这一点?是否可以通过 Ruby 脚本以某种方式在 Mac 和 Linux 上运行,无论 Shell 是什么(找到了支持 zsh 的答案,但是所有其他的 shell 呢?)
快速示例代码:
#Scan the base directory down for Gemfiles
gem_files = File.join("**", "Gemfile")
Dir.glob(gem_files){|gemfile|
project_folder = File.dirname(gemfile)
puts "Found Gemfile in #{project_folder}"
Dir.chdir(project_folder) do
#TODO: Respect/load the rvmrc file in this directory
update_gem_file(project_folder) #example
run 'bundle update rails' #<--- needs to be done in the RVM gemset
end
}
只是为了让您了解我正在尝试做什么。
github上的脚本链接
【问题讨论】:
-
不要链接到您的代码,提供它的剥离/最小版本并将其附加到您的问题中。该链接最终会断开,这将使您的问题对未来寻求类似答案的其他人来说毫无价值或毫无价值。
标签: ruby-on-rails ruby rvm thor