hostify
v0.3.0-beta.1
Published
CLI tool and utils for hosts files: /etc/hosts and C:\Windows\System32\drivers\etc\hosts
Downloads
7
Readme
Hostify
Hostify is a module that help us to work with the hosts
file of our operating system.
It supports both a CLI tool and a module you can use in your own project.
NOTE: library in progress. Please use with caution and report any issue on here: https://github.com/eridem/hostify/issues
CLI tool operations
# Usage
hostify [COMMAND] [OPTIONS]
# For help
hostify --help
hostify [COMMAND] --help
| Command | Description | Example
|:-- |:-- |:-- |
| list
| Show all entries in the host file | hostify list
|
| list --ipFilterExp "REGEXP"
| Show entries which IPs match with RegExp | hostify list --ipFilterExp ".*\.255"
|
| list --hostFilterExp "REGEXP"
| Show entries which Host match with RegExp | hostify list --hostFilterExp ".*tracking.*"
|
| list --ipFilterExp "REGEXP" --hostFilterExp "REGEXP"
| Show entries which IP and Host match with both each RegExp | hostify list --ipFilterExp "0.0.0.0" --hostFilterExp ".*tracking.*"
|
| add --ip "IP" --host "HOST" [--comment "COMMENT"]
| Add a single entry to the hosts
file | hostify add --ip "0.0.0.0" --host "tracking.localhost" --comment "Tracking entry"
|
| delete --ipFilterExp "REGEXP" [--what-if]
| Delete entries which IPs match with RegExp | hostify delete --ipFilterExp "127.0.0.\d+"
|
| delete --hostFilterExp "REGEXP" [--what-if]
| Delete entries which Host match with RegExp | hostify delete --hostFilterExp ".*project\.local"
|
Special options
| Option | Description | Example
|:-- |:-- |:-- |
| --path
| Specify path of another hosts
file | hostify list --path ./my-hosts.txt
|
Module interface
Import module with:
const hostify = require('hostify').operations
List
hostify.list(options): <Array>{ ip: string, host: string }`
Show entries in the host file.
| Option | Model | Default |
|:-- |:-- |:-- |
| filterIpFn
| filterIpFn: (val: string) => boolean
| (v) => true
|
| filterHostFn
| filterHostFn: (val: string) => boolean
| (v) => true
|
| path
| path: string
| OS hosts path |
const options = {
filterIpFn: (val) => val.endsWith('.255'), // Filter IPs
filterHostFn: (val) => val.contains('tracking') // Filter Hosts
// path: './my-hosts-file.txt' // Hosts file
}
const entries = hostify.list(options)
entries.forEach(entry => console.log(entry.ip, entry.host, entry.comment))
Add
hostify.add(options): <Array>{ ip: string, host: string }
Add entries in the host file.
| Option | Model | Default |
|:-- |:-- |:-- |
| entries
| <Array>{ ip: string, host: string, comment: string }
| null
|
| path
| path: string
| OS hosts path |
const options = {
entries: [ // Entries to add
{ ip: '0.0.0.0', host: 'ad.localhost' },
{ ip: '0.0.0.0', host: 'tracking.localhost', comment: 'Track entry' }
],
// path: './my-hosts-file.txt' // Hosts file
}
const entries = hostify.add(options)
entries.forEach(entry => console.log(entry.ip, entry.host, entry.comment))
Delete
hostify.delete(options): <Array>{ ip: string, host: string }
Delete entries in the host file.
| Option | Model | Default |
|:-- |:-- |:-- |
| filterIpFn
| filterIpFn: (val: string) => boolean
| (v) => true
|
| filterHostFn
| filterHostFn: (val: string) => boolean
| (v) => true
|
| whatIf
| whatIf: boolean
| false
|
| path
| path: string
| OS hosts path |
const options = {
filterIpFn: (val) => val.endsWith('.255'), // Filter IPs
filterHostFn: (val) => val.contains('tracking'), // Filter Hosts
whatIf: true // Do not execute delete operation, only obtain results
// path: './my-hosts-file.txt' // Hosts file
}
const entries = hostify.delete(options)
entries.forEach(entry => console.log(entry.ip, entry.host, entry.comment))