tree: 487f572cd9bfc3ed41776259a132873bb1ee4a5c [path history] [tgz]
  1. .gitignore
  2. .goreleaser.yml
  3. LICENSE.md
  4. README.md
  5. freeport.go
vendor/github.com/phayes/freeport/README.md

FreePort

Get a free open TCP port that is ready to use.

Command Line Example:

# Ask the kernel to give us an open port.
export port=$(freeport)

# Start standalone httpd server for testing
httpd -X -c "Listen $port" &

# Curl local server on the selected port
curl localhost:$port

Golang example:

package main

import "github.com/phayes/freeport"

func main() {
	port, err := freeport.GetFreePort()
	if err != nil {
		log.Fatal(err)
	}
	// port is ready to listen on
}

Installation

Mac OSX

brew install phayes/repo/freeport

CentOS and other RPM based systems

wget https://github.com/phayes/freeport/releases/download/1.0.2/freeport_1.0.2_linux_386.rpm
rpm -Uvh freeport_1.0.2_linux_386.rpm

Ubuntu and other DEB based systems

wget wget https://github.com/phayes/freeport/releases/download/1.0.2/freeport_1.0.2_linux_amd64.deb
dpkg -i freeport_1.0.2_linux_amd64.deb

Building From Source

sudo apt-get install golang                    # Download go. Alternativly build from source: https://golang.org/doc/install/source
go get github.com/phayes/freeport