我正在尝试修复特定于Linux的GEM ...它使用which命令查找GEM安装的shell文件以调用可执行文件然后使用结果。
我以为我可以使用Find.find(dir)来获取文件的位置。不幸的是,搜索此文件的路径很麻烦。我正在寻找关于如何缩小搜索范围或使用不同方法查找文件的建议。
以下是我正在实施的代码:
@path_array = ENV['Path'].split(";")
require 'find'
@path_array.each do |dir|
Find.find(dir) do |path|
if File.basename(path) == "wkhtmltoimage-proxy"
Rails.logger.debug("@@@ Here")
@meow = path
end
end
end
...更新
尝试在FileTest.directory中添加?接下来,但似乎绕过了文件。
答案 0 :(得分:0)
为什么我要搜索路径?如果它在Path中,那么执行应该找到它。咄。
然而,我听到的唯一合理的解决方案是否仍然需要这样的事情是要求开发人员在资源文件中放置一个路径(例如属性)并从那里获取位置而不是使用Find。
这可能是原始开发人员使用which <exe>
。chomp命令的原因,因为Linux命令要快得多。