2023-08-08 13:54:59 -07:00
|
|
|
# typed: strict
|
2020-03-27 14:29:50 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2020-08-17 06:01:54 +02:00
|
|
|
require "socket"
|
|
|
|
|
2020-03-27 14:29:50 +00:00
|
|
|
module Homebrew
|
2020-08-17 06:01:54 +02:00
|
|
|
# Helper function for finding a free port.
|
|
|
|
#
|
|
|
|
# @api private
|
2020-03-27 14:29:50 +00:00
|
|
|
module FreePort
|
2020-08-17 06:01:54 +02:00
|
|
|
# Returns a free port.
|
|
|
|
# @api public
|
2023-08-08 13:54:59 -07:00
|
|
|
sig { returns(Integer) }
|
2020-03-27 14:29:50 +00:00
|
|
|
def free_port
|
|
|
|
server = TCPServer.new 0
|
|
|
|
_, port, = server.addr
|
|
|
|
server.close
|
|
|
|
|
|
|
|
port
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|