Module: Pkg::Util::Tool
- Defined in:
- lib/packaging/util/tool.rb
Overview
Utility methods for handling system binaries
Constant Summary collapse
- GIT =
Set up paths to system tools we use in the packaging repo
no matter what distribution we're packaging for.
Pkg::Util::Tool.check_tool('git')
Class Method Summary collapse
- .check_tool(tool) ⇒ Object
- .find_tool(tool, args = { :required => false }) ⇒ Object (also: has_tool)
Class Method Details
.check_tool(tool) ⇒ Object
7 8 9 |
# File 'lib/packaging/util/tool.rb', line 7 def check_tool(tool) find_tool(tool, :required => true) end |
.find_tool(tool, args = { :required => false }) ⇒ Object Also known as: has_tool
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/packaging/util/tool.rb', line 11 def find_tool(tool, args = { :required => false }) ENV['PATH'].split(File::PATH_SEPARATOR).each do |root| location = File.join(root, tool) if Pkg::Util::OS.windows? && File.extname(location).empty? exts = ENV['PATHEXT'] exts = exts ? exts.split(File::PATH_SEPARATOR) : %w[.EXE .BAT .CMD .COM] exts.each do |ext| locationext = File.(location + ext) return "\"#{locationext}\"" if FileTest.executable?(locationext) end end return location if FileTest.executable? location end fail "#{tool} tool not found...exiting" if args[:required] return nil end |