method

find_cmd_and_exec

v5.0.0.1 - Show latest stable - Class: Rails::DBConsole
find_cmd_and_exec(commands, *args)
protected

No documentation available.

# File railties/lib/rails/commands/dbconsole.rb, line 150
      def find_cmd_and_exec(commands, *args)
        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)
            File.file?(full_path_command) && File.executable?(full_path_command)
          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