mirror of
https://github.com/octoleo/hosts.git
synced 2024-11-22 04:45:11 +00:00
Modify sed
platform handling.
Use array for `sed -i` command so arguments are passed as expected. This resolves an issue where a copy of the hosts file is created with quotes appended to the filename.
This commit is contained in:
parent
bfbe08a65b
commit
4be5105f67
16
hosts
16
hosts
@ -57,18 +57,20 @@ export _SPACE_=$' '
|
|||||||
export _TAB_SPACE_="${_TAB_}${_SPACE_}"
|
export _TAB_SPACE_="${_TAB_}${_SPACE_}"
|
||||||
export _TAB_SPACE_CC_="[${_TAB_SPACE_}]"
|
export _TAB_SPACE_CC_="[${_TAB_SPACE_}]"
|
||||||
|
|
||||||
# $SED_I_ARG
|
# $SED_COMMAND
|
||||||
#
|
#
|
||||||
# `sed -i` takes an extension on macOS, but that extension can cause errors in
|
# `sed -i` takes an extension on macOS, but that extension can cause errors in
|
||||||
# GNU `sed`.
|
# GNU `sed`.
|
||||||
#
|
#
|
||||||
|
# NOTE: To use this command, call it with `"${SED_COMMAND[@]}"`
|
||||||
|
#
|
||||||
# https://stackoverflow.com/q/43171648
|
# https://stackoverflow.com/q/43171648
|
||||||
# http://stackoverflow.com/a/16746032
|
# http://stackoverflow.com/a/16746032
|
||||||
if sed --help >/dev/null 2>&1
|
if sed --help >/dev/null 2>&1
|
||||||
then # GNU
|
then # GNU
|
||||||
export SED_I_ARG="-i"
|
export SED_COMMAND=(sed -i)
|
||||||
else # macOS
|
else # macOS
|
||||||
export SED_I_ARG="-i ''"
|
export SED_COMMAND=(sed -i '')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@ -826,7 +828,7 @@ disable() {
|
|||||||
|
|
||||||
printf "Disabling:\\n%s\\n" "${_targets}"
|
printf "Disabling:\\n%s\\n" "${_targets}"
|
||||||
|
|
||||||
sed "${SED_I_ARG}" \
|
"${SED_COMMAND[@]}" \
|
||||||
-e "s/${_regex_ip}/\\#disabled: \\1/g" \
|
-e "s/${_regex_ip}/\\#disabled: \\1/g" \
|
||||||
-e "s/${_regex_commented_hostname}/\\#disabled: \\1/g" \
|
-e "s/${_regex_commented_hostname}/\\#disabled: \\1/g" \
|
||||||
-e "s/${_regex_hostname}/\\#disabled: \\1/g" \
|
-e "s/${_regex_hostname}/\\#disabled: \\1/g" \
|
||||||
@ -920,7 +922,7 @@ enable() {
|
|||||||
|
|
||||||
printf "Enabling:\\n%s\\n" "${_targets}"
|
printf "Enabling:\\n%s\\n" "${_targets}"
|
||||||
|
|
||||||
sed "${SED_I_ARG}" \
|
"${SED_COMMAND[@]}" \
|
||||||
-e "s/${_regex_ip}/\\1/g" \
|
-e "s/${_regex_ip}/\\1/g" \
|
||||||
-e "s/${_regex_commented_hostname}/\\1/g" \
|
-e "s/${_regex_commented_hostname}/\\1/g" \
|
||||||
-e "s/${_regex_hostname}/\\1/g" \
|
-e "s/${_regex_hostname}/\\1/g" \
|
||||||
@ -1126,12 +1128,12 @@ remove() {
|
|||||||
|
|
||||||
if ((_is_search_pair))
|
if ((_is_search_pair))
|
||||||
then
|
then
|
||||||
sed "${SED_I_ARG}" \
|
"${SED_COMMAND[@]}" \
|
||||||
-e "/${_regex_ip_hostname_commented}/d" \
|
-e "/${_regex_ip_hostname_commented}/d" \
|
||||||
-e "/${_regex_ip_hostname}/d" \
|
-e "/${_regex_ip_hostname}/d" \
|
||||||
"${HOSTS_PATH}"
|
"${HOSTS_PATH}"
|
||||||
else
|
else
|
||||||
sed "${SED_I_ARG}" \
|
"${SED_COMMAND[@]}" \
|
||||||
-e "/${_regex_ip}/d" \
|
-e "/${_regex_ip}/d" \
|
||||||
-e "/${_regex_commented_hostname}/d" \
|
-e "/${_regex_commented_hostname}/d" \
|
||||||
-e "/${_regex_hostname}/d" \
|
-e "/${_regex_hostname}/d" \
|
||||||
|
Loading…
Reference in New Issue
Block a user