mirror of
https://github.com/octoleo/hosts.git
synced 2024-11-26 06:46:43 +00:00
Merge branch 'master' into exact-matches
* master: Exit with "Not found" message on failed search in `enable`/`disable` Bump version to 1.5.0 Print confirmation feedback in `add` on success. Declare and assign separately to avoid masking return values. Add `brew tap` command to `brew install` in Readme.
This commit is contained in:
commit
9cb7576bb5
@ -14,7 +14,7 @@ A command line program with shortcuts for managing hosts file entries.
|
|||||||
|
|
||||||
To install with [Homebrew](http://brew.sh/):
|
To install with [Homebrew](http://brew.sh/):
|
||||||
|
|
||||||
brew install alphabetum/taps/hosts
|
brew tap alphabetum/taps && brew install alphabetum/taps/hosts
|
||||||
|
|
||||||
### bpkg
|
### bpkg
|
||||||
|
|
||||||
|
40
hosts
40
hosts
@ -36,7 +36,7 @@ IFS=$'\n\t'
|
|||||||
# Globals
|
# Globals
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
_VERSION="1.4.3"
|
_VERSION="1.5.0"
|
||||||
|
|
||||||
# DEFAULT_COMMAND
|
# DEFAULT_COMMAND
|
||||||
#
|
#
|
||||||
@ -690,15 +690,23 @@ add() {
|
|||||||
else
|
else
|
||||||
if [[ -n ${comment} ]]
|
if [[ -n ${comment} ]]
|
||||||
then
|
then
|
||||||
local formatted_comment=$(_join " " "${comment[@]}")
|
local formatted_comment
|
||||||
|
formatted_comment=$(_join " " "${comment[@]}")
|
||||||
printf "%s\t%s\t# %s\n" \
|
printf "%s\t%s\t# %s\n" \
|
||||||
"${ip}" \
|
"${ip}" \
|
||||||
"${hostname}" \
|
"${hostname}" \
|
||||||
"${formatted_comment}" >> "${HOSTS_PATH}"
|
"${formatted_comment}" >> "${HOSTS_PATH}"
|
||||||
|
printf "Added:\n%s\t%s\t# %s\n" \
|
||||||
|
"${ip}" \
|
||||||
|
"${hostname}" \
|
||||||
|
"${formatted_comment}"
|
||||||
else
|
else
|
||||||
printf "%s\t%s\n" \
|
printf "%s\t%s\n" \
|
||||||
"${ip}" \
|
"${ip}" \
|
||||||
"${hostname}" >> "${HOSTS_PATH}"
|
"${hostname}" >> "${HOSTS_PATH}"
|
||||||
|
printf "Added:\n%s\t%s\n" \
|
||||||
|
"${ip}" \
|
||||||
|
"${hostname}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -723,10 +731,15 @@ disable() {
|
|||||||
else
|
else
|
||||||
_debug printf "disable() \$search_term: %s\n" "$search_term"
|
_debug printf "disable() \$search_term: %s\n" "$search_term"
|
||||||
|
|
||||||
local targets=$(
|
local targets
|
||||||
|
targets=$(
|
||||||
sed -n "s/^\([^#]*${search_term}.*\)$/\1/p" "${HOSTS_PATH}"
|
sed -n "s/^\([^#]*${search_term}.*\)$/\1/p" "${HOSTS_PATH}"
|
||||||
)
|
)
|
||||||
_debug printf "disable() \$targets: %s\n" "$targets"
|
_debug printf "disable() \$targets: %s\n" "$targets"
|
||||||
|
if [[ -z "${targets}" ]]
|
||||||
|
then
|
||||||
|
_die printf "Not found: %s\n" "${search_term}"
|
||||||
|
fi
|
||||||
|
|
||||||
printf "Disabling:\n%s\n" "${targets}"
|
printf "Disabling:\n%s\n" "${targets}"
|
||||||
|
|
||||||
@ -788,7 +801,14 @@ enable() {
|
|||||||
else
|
else
|
||||||
local target_regex="s/^\#disabled: \(.*${search_term}.*\)$/\1/"
|
local target_regex="s/^\#disabled: \(.*${search_term}.*\)$/\1/"
|
||||||
|
|
||||||
local targets=$(sed -n "${target_regex}p" "${HOSTS_PATH}")
|
local targets
|
||||||
|
targets=$(sed -n "${target_regex}p" "${HOSTS_PATH}")
|
||||||
|
_debug printf "enable() \$targets: %s\n" "$targets"
|
||||||
|
if [[ -z "${targets}" ]]
|
||||||
|
then
|
||||||
|
_die printf "Not found: %s\n" "${search_term}"
|
||||||
|
fi
|
||||||
|
|
||||||
printf "Enabling:\n%s\n" "${targets}"
|
printf "Enabling:\n%s\n" "${targets}"
|
||||||
|
|
||||||
# -i '' - in place edit. BSD sed requires extension argument, for GNU
|
# -i '' - in place edit. BSD sed requires extension argument, for GNU
|
||||||
@ -836,7 +856,8 @@ Description:
|
|||||||
EOM
|
EOM
|
||||||
list() {
|
list() {
|
||||||
# Get the disabled records up front for the two cases where they are needed.
|
# Get the disabled records up front for the two cases where they are needed.
|
||||||
local disabled_records=$(
|
local disabled_records
|
||||||
|
disabled_records=$(
|
||||||
sed -n "s/^\#disabled: \(.*\)$/\1/p" "${HOSTS_PATH}"
|
sed -n "s/^\#disabled: \(.*\)$/\1/p" "${HOSTS_PATH}"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -887,7 +908,8 @@ remove() {
|
|||||||
#
|
#
|
||||||
# - Note double periods in regular expression in order to emulate /.+/,
|
# - Note double periods in regular expression in order to emulate /.+/,
|
||||||
# which apparently doesn't work properly with all versions of sed.
|
# which apparently doesn't work properly with all versions of sed.
|
||||||
local target_records=$(
|
local target_records
|
||||||
|
target_records=$(
|
||||||
sed -n \
|
sed -n \
|
||||||
-e "s/^\(${search_string}[${_TAB_SPACE_}]..*\)$/\1/p" \
|
-e "s/^\(${search_string}[${_TAB_SPACE_}]..*\)$/\1/p" \
|
||||||
-e "s/^\(..*[${_TAB_SPACE_}]${search_string}[${_TAB_SPACE_}]..*\)$/\1/p" \
|
-e "s/^\(..*[${_TAB_SPACE_}]${search_string}[${_TAB_SPACE_}]..*\)$/\1/p" \
|
||||||
@ -949,10 +971,12 @@ show() {
|
|||||||
if [[ -n "$1" ]]
|
if [[ -n "$1" ]]
|
||||||
then
|
then
|
||||||
# Run `sed` before `grep` to avoid conflict that supress `sed` output.
|
# Run `sed` before `grep` to avoid conflict that supress `sed` output.
|
||||||
local disabled_records=$(
|
local disabled_records
|
||||||
|
disabled_records=$(
|
||||||
sed -n "s/^\#\(disabled: .*$1.*\)$/\1/p" "${HOSTS_PATH}"
|
sed -n "s/^\#\(disabled: .*$1.*\)$/\1/p" "${HOSTS_PATH}"
|
||||||
)
|
)
|
||||||
local enabled_records=$(
|
local enabled_records
|
||||||
|
enabled_records=$(
|
||||||
grep "^[^#]*$1" "${HOSTS_PATH}"
|
grep "^[^#]*$1" "${HOSTS_PATH}"
|
||||||
)
|
)
|
||||||
# Output disabled records secondly for better organization.
|
# Output disabled records secondly for better organization.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "hosts",
|
"name": "hosts",
|
||||||
"version": "1.4.3",
|
"version": "1.5.0",
|
||||||
"description": "A command line tool for managing hosts file entries.",
|
"description": "A command line tool for managing hosts file entries.",
|
||||||
"global": true,
|
"global": true,
|
||||||
"install": "make install"
|
"install": "make install"
|
||||||
|
Loading…
Reference in New Issue
Block a user