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.
 
 
Go to file
Chris Bednarski dd746035f7 Add appveyor config, changelog, README TLC, and update TravisCI Go to 1.14 4 years ago
hostess Added package comment 4 years ago
.appveyor.yml Add appveyor config, changelog, README TLC, and update TravisCI Go to 1.14 4 years ago
.gitignore Cleaned up gitignore because we're not using all that stuff anymore 4 years ago
.travis.yml Add appveyor config, changelog, README TLC, and update TravisCI Go to 1.14 4 years ago
CHANGELOG.md Add appveyor config, changelog, README TLC, and update TravisCI Go to 1.14 4 years ago
LICENSE Initial commit 9 years ago
Makefile Clean up makefile 4 years ago
README.md Add appveyor config, changelog, README TLC, and update TravisCI Go to 1.14 4 years ago
commands.go Moved commands from commands package to root 4 years ago
commands_test.go Moved commands from commands package to root 4 years ago
go.mod Started major refactor for 0.5.0 4 years ago
main.go Moved commands from commands package to root 4 years ago

README.md

hostess Linux Build Status Windows Build Status GoDoc

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.

* And C:\Windows\System32\drivers\etc\hosts on Windows.

Note: 0.5.0 has backwards incompatible changes in the API and CLI. See CHANGELOG.md for details.

Installation

Download a precompiled release from GitHub, or build from source (with a recent version of Go):

go get -u github.com/cbednarski/hostess

Usage

Run hostess or hostess -h to see a full list of commands.

Format

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

Configuration

hostess may be configured via environment variables.

  • HOSTESS_FMT may be set to windows or unix to override platform detection for the hosts file format. See Behavior, above, for details

  • HOSTESS_PATH may be set to override platform detection for the location of the hosts file. By default this is C:\Windows\System32\drivers\etc\hosts on Windows and /etc/hosts everywhere else.

IPv4 and IPv6

Your hosts file may 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.