An idempotent command-line utility for managing your
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.
C:\Windows\System32\drivers\etc\hosts on Windows.
Note: 0.4.0 has backwards incompatible changes in the API and CLI. See
CHANGELOG.md for details.
git clone https://github.com/cbednarski/hostess cd hostess make install
hostess -h to see a full list of commands.
Note The hosts file is protected. On unixes you will need to use
hostess command as root. On Windows, you will need to run
from an elevated prompt (right click and Run as administrator).
On unixes, hostess follows the format specified by
man hosts, with one line
per IP address:
127.0.0.1 localhost hostname2 hostname3 127.0.1.1 machine.name # 10.10.20.30 some.host
On Windows, hostess writes each hostname on its own line.
127.0.0.1 localhost 127.0.0.1 hostname2 127.0.0.1 hostname3
hostess may be configured via environment variables.
HOSTESS_FMTmay be set to
unixto override platform detection for the hosts file format. See Behavior, above, for details
HOSTESS_PATHmay be set to override platform detection for the location of the hosts file. By default this is
C:\Windows\System32\drivers\etc\hostson Windows and
IPv4 and IPv6
It's possible for your hosts file to include overlapping entries for IPv4 and IPv6. This is an uncommon case so the CLI ignores this distinction. The hostess library includes logic that differentiates between these cases.
I hope my software is useful, readable, fun to use, and helps you learn
something new. I maintain this software in my spare time. I rarely merge PRs
because I am both lazy and a snob. Bug reports, fixes, questions, and comments
are welcome but expect a delayed response. No refunds.