maxcnunes / waitforit

Wait until an address become available.
MIT License
173 stars 26 forks source link

wait for it

Build Status Coverage Status

Wait until an address become available.

Download

Releases

Options

Example

Running

waitforit -host=google.com -port=90 -timeout=20 -debug

waitforit -address=tcp://google.com:90 -timeout=20 -debug

waitforit -address=http://google.com -timeout=20 -debug

waitforit -address=http://google.com:90 -timeout=20 -retry=500 -debug

waitforit -address=http://google.com -timeout=20 -debug -- printf "Google Works\!"

waitforit -address=http://google.com -header "Authorization: Basic Zm9vOmJhcg==" -header "X-ID: 111" -debug

Using with config file

Create a JSON file describing the hosts you would like to wait for.

Example JSON:

{
  "configs": [
    {
      "host": "google.com",
      "port": 80,
      "timeout": 20,
      "retry": 500,
      "headers": {
        "Authorization": "Basic Zm9vOmJhcg==",
        "X-ID": "111"
      }
    },
    {
      "address": "http://google.com:80",
      "timeout": 40
    }
  ]
}
waitforit -file=./config.json

Installing with a Dockerfile

Using curl
FROM node:6.5.0

ENV WAITFORIT_VERSION="v2.4.1"
RUN curl -o /usr/local/bin/waitforit -sSL https://github.com/maxcnunes/waitforit/releases/download/$WAITFORIT_VERSION/waitforit-linux_amd64 && \
    chmod +x /usr/local/bin/waitforit
Using wget
FROM node:6.5.0

ENV WAITFORIT_VERSION="v2.4.1"
RUN wget -q -O /usr/local/bin/waitforit https://github.com/maxcnunes/waitforit/releases/download/$WAITFORIT_VERSION/waitforit-linux_amd64 \
    && chmod +x /usr/local/bin/waitforit
Using COPY (from local file system)
FROM node:6.5.0

COPY waitforit-linux_amd64 /usr/local/bin/waitforit
RUN chmod +x /usr/local/bin/waitforit

Development

make run

Running with Docker and Compose:

docker-compose run --rm local
docker-compose run --rm local go run src/waitforit/main.go -h

Test

make test

Build

make build