You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hostess/README.md

75 lines
2.7 KiB
Markdown

9 years ago
# hostess [![](https://travis-ci.org/cbednarski/hostess.svg)](https://travis-ci.org/cbednarski/hostess)
10 years ago
An **idempotent** command-line utility for managing your `/etc/hosts` file.
hostess add local.example.com 127.0.0.1
hostess add staging.example.com 10.0.2.16
Why? Because you edit `/etc/hosts` for development, testing, and debugging.
Because sometimes DNS doesn't work in production. And because editing
`/etc/hosts` by hand is a pain. Put hostess in your `Makefile` or deploy scripts
and call it a day.
10 years ago
## Using Hostess
10 years ago
### Download and Install
Download a [precompiled release](https://github.com/cbednarski/hostess/releases)
from GitHub.
### Usage
hostess add domain ip # Add or replace a hosts entry for this domain pointing to this IP
hostess aff domain ip # Add or replace a hosts entry in an off state
hostess del domain # (alias rm) Remove a domain from your hosts file
hostess has domain # exit code 0 if the domain is in your hostfile, 1 otherwise
hostess off domain # Disable a domain (but don't remove it completely), exit 1 if entry is missing
hostess on domain # Re-enable a domain that was disabled, exit 1 if entry is missing
hostess list # (alias ls) List domains, target ips, and on/off status
hostess fix # Rewrite your hosts file; use -n to dry run
hostess dump # Dump your hostfile as json
hostess apply # Add entries from a json file
9 years ago
Flags
-n # Dry run. Show what will happen but don't do it; output to stdout
-4 # Limit operation to ipv4 entries
-6 # Limit operation to ipv6 entries
hostess will mangle your hosts file. Domains pointing at the same IP will be
grouped together and disabled domains commented out.
10 years ago
127.0.0.1 localhost hostname2 hostname3
127.0.1.1 machine.name
# 10.10.20.30 some.host
9 years ago
### IPv4 and IPv6
Your hosts file *can* contain overlapping entries where the same hostname points
to both an IPv4 and IPv6 IP. In this case, hostess commands will apply to both
entries. Typically you won't have this kind of overlap and the default behavior
is OK. However, if you need to be more granular you can use `-4` or `-6` to
limit operations to entries associated with that type of IP.
10 years ago
## Developing Hostess
10 years ago
### Configuration
10 years ago
By default, hostess will read / write to `/etc/hosts`. You can use the
`HOSTESS_PATH` environment variable to provide an alternate path (for testing).
10 years ago
### Building from Source
9 years ago
To build from source you'll need to have go 1.4+
#### Install with go get
go get github.com/cbednarski/hostess/cmd/hostess
#### Install from source
git clone https://github.com/cbednarski/hostess
cd hostess
make
make install