module R10K::Util::Commands
Public Instance Methods
which(cmd)
click to toggle source
Find the full path of a shell command.
On POSIX platforms, the PATHEXT environment variable will be unset, so the first command named 'cmd' will be returned.
On Windows platforms, the PATHEXT environment variable will contain a semicolon delimited list of executable file extensions, so the first command with a matching path extension will be returned.
@param cmd [String] The name of the command to search for @return [String, nil] The path to the file if found, nil otherwise
# File lib/r10k/util/commands.rb, line 17 def which(cmd) exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : [''] ENV['PATH'].split(File::PATH_SEPARATOR).each do |dir| exts.each do |ext| path = File.join(dir, "#{cmd}#{ext}") if File.executable?(path) && File.file?(path) return path end end end nil end