self.find_executable

in lib/utils.rb [8:23]


  def self.find_executable(binary)
    executable_file = proc { |name| next name if File.file?(name) && File.executable?(name) }

    
    path = ENV['PATH']&.split(File::PATH_SEPARATOR) || %w[/usr/local/bin /usr/bin /bin]

    
    path.each do |dir|
      file = File.expand_path(binary, dir)

      return file if executable_file.call(file)
    end

    nil
  end