Sha256: 3e3801d39dc4dcd5d71a12326e5045f2046f33e12d6e0d455e0cc75ccdc9e3c2

Contents?: true

Size: 731 Bytes

Versions: 1

Compression:

Stored size: 731 Bytes

Contents

require 'server/starter/version'
require 'puma/const'

class Server::Starter
  class PumaListener
    def self.listen
      return nil unless ENV.key?('SERVER_STARTER_PORT')
      ENV['SERVER_STARTER_PORT'].split(';').map.with_index do |x, i|
        path_or_port, fd = x.split('=', 2)
        if path_or_port.match(/(?:^|:)\d+$/)
          url = "tcp://#{path_or_port}"
        else
          url = "unix://#{path_or_port}"
        end
        if Gem::Version.new(Puma::Const::PUMA_VERSION) < Gem::Version.new('5')
          ENV["PUMA_INHERIT_#{i}"] = "#{fd}:#{url}"
        else
          ENV['LISTEN_FDS'] = '1'
          ENV['LISTEN_PID'] = Process.pid.to_s
        end
        { fd: fd, url: url }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
server-starter-0.3.2 lib/server/starter/puma_listener.rb