hostparty
v1.0.16
Published
Programmatic and CLI editing for OS hosts file
Downloads
3,391
Maintainers
Readme
/)
(/ ___ _ _/___ _ __ _/_
/ )_(_) /_)_(__/_)_(_(_/ (_(__(_/_ 🎉
.-/ .-/
(_/ (_/
Cross platform CLI editor & JavaScript API for managing your hostsfile.
Installing:
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
API:
All API methods return thenable promises.
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");
});
CLI Usage:
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! 🎉