class method
self.find_cmd_and_exec
Ruby on Rails 8.1.2
Since v7.1.6Signature
self.find_cmd_and_exec(commands, *args)
No documentation comment.
Parameters
-
commandsreq -
argsrest
Source
# File activerecord/lib/active_record/connection_adapters/abstract_adapter.rb, line 99
def self.find_cmd_and_exec(commands, *args) # :doc:
commands = Array(commands)
dirs_on_path = ENV["PATH"].to_s.split(File::PATH_SEPARATOR)
unless (ext = RbConfig::CONFIG["EXEEXT"]).empty?
commands = commands.map { |cmd| "#{cmd}#{ext}" }
end
full_path_command = nil
found = commands.detect do |cmd|
dirs_on_path.detect do |path|
full_path_command = File.join(path, cmd)
begin
stat = File.stat(full_path_command)
rescue SystemCallError
else
stat.file? && stat.executable?
end
end
end
if found
exec full_path_command, *args
else
abort("Couldn't find database client: #{commands.join(', ')}. Check your $PATH and try again.")
end
end
Defined in activerecord/lib/active_record/connection_adapters/abstract_adapter.rb line 99
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::ConnectionAdapters::AbstractAdapter