hostparty
Version:
Programmatic and CLI editing for OS hosts file
108 lines (71 loc) • 2.92 kB
Markdown
```
/)
(/ ___ _ _/___ _ __ _/_
/ )_(_) /_)_(__/_)_(_(_/ (_(__(_/_ 🎉
.-/ .-/
(_/ (_/
```

[](https://travis-ci.org/drb/hostparty) [](http://badge.fury.io/js/hostparty)
To use as a CLI tool, you can install hostparty globally.
`npm install -g hostparty`
Or, `require('hostparty')` in your own applications to use the API:
`npm install hostparty --save`
All API methods return thenable promises.
```javascript
let party = require('hostparty');
// add a couple of hosts mapping to ip 127.0.0.1
party.add('127.0.0.1', ['party-started.com', 'party-pooper.com']);
// see who we have in our hosts file
party.list().then((hosts)=>{
// `hosts` is an object containing the ip as a key, and the hostnames(s) bound as an array
// 127.0.0.1 party-started.com party-pooper.com
});
// remove the party pooper from its bound ip
party.purge('party-pooper.com');
// remove all entries pointing to ips 127.0.0.1 and 8.8.4.4
party.remove(['127.0.0.1', '8.8.4.4']);
// try and remove a protected IP
party
.remove('::1')
.then(()=>{
console.log("All good");
})
.catch((e)=>{
console.error('Error found [%s]. Try using the force flag.', e.message);
});
// set options to change the default path, and override any warnings
party
.setup({
// override the path to the file
path: '~/my-own/hosts',
// ignores validation
force: true
})
.remove('::1')
.then(()=>{
console.log("All good");
});
```
From hostparty --help:
```
Usage: hostparty [options] [command]
Commands:
list [options] [hostname] Outputs the hosts file with optional matching hostname.
add [options] [ip] [hosts...] Adds a new host(s) entry for an IP address.
remove [options] [ips...] Removes all entries for an IP address.
purge [options] [hosts...] Removes all host(s) specified.
Options:
-p, --path Path to file (auto-detection is enabled by default)
-f, --force Disable any validation on protected methods
-ng, --no-group Don't group by IP
-h, --help Output usage information
-V, --version Output the version number
```
### Notes:
Some entries such as `::1` on OSX is protected from calls to `remove()` as this is a loopback address used by the operating system during the boot cycle. Purge is supported for hosts bound to the address, but a purge on `localhost` for this IP is protected unless the `--force` flag is used.
More docs coming! 🎉