Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cbednarski/hostess
An idempotent command-line utility for managing your /etc/hosts file.
https://github.com/cbednarski/hostess
cli dns
Last synced: about 2 months ago
JSON representation
An idempotent command-line utility for managing your /etc/hosts file.
- Host: GitHub
- URL: https://github.com/cbednarski/hostess
- Owner: cbednarski
- License: mit
- Created: 2015-01-17T08:57:53.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2020-05-02T04:03:39.000Z (over 4 years ago)
- Last Synced: 2024-07-18T22:15:07.030Z (5 months ago)
- Topics: cli, dns
- Language: Go
- Homepage:
- Size: 198 KB
- Stars: 845
- Watchers: 8
- Forks: 41
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome - hostess - An idempotent command-line utility for managing your /etc/hosts file. (Go)
- jimsghstars - cbednarski/hostess - An idempotent command-line utility for managing your /etc/hosts file. (Go)
README
# hostess [![Linux Build Status](https://travis-ci.org/cbednarski/hostess.svg)](https://travis-ci.org/cbednarski/hostess) [![Windows Build Status](https://ci.appveyor.com/api/projects/status/wtxqb880b7v9dfgn/branch/master?svg=true)](https://ci.appveyor.com/project/cbednarski/hostess/branch/master) [![GoDoc](https://godoc.org/github.com/cbednarski/hostess?status.svg)](http://godoc.org/github.com/cbednarski/hostess)
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.16Why? 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.4.0 has backwards incompatible changes in the API and CLI.** See
`CHANGELOG.md` for details.## Installation
Download a [precompiled release](https://github.com/cbednarski/hostess/releases)
from GitHub, or build from source (with a [recent version of Go](https://golang.org/dl)):git clone https://github.com/cbednarski/hostess
cd hostess
make install## Usage
Run `hostess` or `hostess -h` to see a full list of commands.
**Note** The hosts file is protected. On unixes you will need to use `sudo` or
run the `hostess` command as root. On Windows, you will need to run `hostess`
from an elevated prompt (right click and _Run as administrator_).## 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.hostOn 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
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.## Contributing
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. 👻