Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/shenek/wait-for-them

Wait until TCP services are running.
https://github.com/shenek/wait-for-them

cli docker-compose rust

Last synced: 2 months ago
JSON representation

Wait until TCP services are running.

Awesome Lists containing this project

README

        

![Security audit](https://github.com/shenek/wait-for-them/workflows/Security%20audit/badge.svg)
![Code Quality](https://github.com/shenek/wait-for-them/workflows/Code%20Quality/badge.svg)
![Release](https://github.com/shenek/wait-for-them/workflows/Release/badge.svg)
[![Documentation](https://docs.rs/wait-for-them/badge.svg)](https://docs.rs/wait-for-them/)
![Downloads](https://img.shields.io/crates/d/wait-for-them.svg)

# Wait-For-Them
Waits until all provided host and port pairs are opened or return status 200 in case of http(s) url.
It is written using async rust.

![Cast](/wait-for-them.gif)

## Installation

There are currently two way how to install the app.

You can install the binary only with a minimal subset of features.
```bash
cargo install wait-for-them --no-default-features
```

Or you can install it with all its features (including the nice progressbars and http(s) support).
```bash
cargo install wait-for-them
```

## Running

### Wait forever
```bash
wait-for-them host1:port1 host2:port2 http://host3:8080/
```

### Wait with timeout (in milliseconds)
```
wait-for-them -t 5000 host1:port1 host2:port2 http://host3:8080/
```

Note that it returns a number of unopened host:port combinations.
So if it worked ok it returns standard `0`.

### Execute a command after all hosts have opened ports
```
wait-for-them host1:port1 host2:port2 http://host3:8080/ -- cmd arg1 arg2
```

Note that if the ports are opened it returns the status code of cmd.

## Motivation
The main motivation of this program was to use it within `docker-compose` config file (see `docker-compose.yml`).
To support waiting for multiple hostname:port records in parallel.