mirror of
https://github.com/pi-hole/pi-hole.git
synced 2024-11-15 10:43:55 +00:00
Merge pull request #1779 from pi-hole/new/locallists
Add support for local blocking lists
This commit is contained in:
commit
472f7725c7
1 changed files with 31 additions and 17 deletions
18
gravity.sh
18
gravity.sh
|
@ -139,7 +139,8 @@ gravity_Collapse() {
|
||||||
awk -F '[/:]' '{
|
awk -F '[/:]' '{
|
||||||
# Remove URL protocol & optional username:password@
|
# Remove URL protocol & optional username:password@
|
||||||
gsub(/(.*:\/\/|.*:.*@)/, "", $0)
|
gsub(/(.*:\/\/|.*:.*@)/, "", $0)
|
||||||
print $1
|
if(length($1)>0){print $1}
|
||||||
|
else {print "local"}
|
||||||
}' <<< "$(printf '%s\n' "${sources[@]}")" 2> /dev/null
|
}' <<< "$(printf '%s\n' "${sources[@]}")" 2> /dev/null
|
||||||
)"
|
)"
|
||||||
|
|
||||||
|
@ -192,9 +193,10 @@ gravity_Pull() {
|
||||||
patternBuffer=$(mktemp -p "/tmp" --suffix=".phgpb")
|
patternBuffer=$(mktemp -p "/tmp" --suffix=".phgpb")
|
||||||
|
|
||||||
# Determine if $saveLocation has read permission
|
# Determine if $saveLocation has read permission
|
||||||
if [[ -r "${saveLocation}" ]]; then
|
if [[ -r "${saveLocation}" && $url != "file"* ]]; then
|
||||||
# Have curl determine if a remote file has been modified since last retrieval
|
# Have curl determine if a remote file has been modified since last retrieval
|
||||||
# Uses "Last-Modified" header, which certain web servers do not provide (e.g: raw github urls)
|
# Uses "Last-Modified" header, which certain web servers do not provide (e.g: raw github urls)
|
||||||
|
# Note: Don't do this for local files, always download them
|
||||||
heisenbergCompensator="-z ${saveLocation}"
|
heisenbergCompensator="-z ${saveLocation}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -203,6 +205,9 @@ gravity_Pull() {
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
httpCode=$(curl -s -L ${cmd_ext} ${heisenbergCompensator} -w "%{http_code}" -A "${agent}" "${url}" -o "${patternBuffer}" 2> /dev/null)
|
httpCode=$(curl -s -L ${cmd_ext} ${heisenbergCompensator} -w "%{http_code}" -A "${agent}" "${url}" -o "${patternBuffer}" 2> /dev/null)
|
||||||
|
|
||||||
|
case $url in
|
||||||
|
# Did we "download" a remote file?
|
||||||
|
"http"*)
|
||||||
# Determine "Status:" output based on HTTP response
|
# Determine "Status:" output based on HTTP response
|
||||||
case "${httpCode}" in
|
case "${httpCode}" in
|
||||||
"200") echo -e "${OVER} ${TICK} ${str} Retrieval successful"; success=true;;
|
"200") echo -e "${OVER} ${TICK} ${str} Retrieval successful"; success=true;;
|
||||||
|
@ -217,6 +222,15 @@ gravity_Pull() {
|
||||||
"521") echo -e "${OVER} ${CROSS} ${str} Web Server Is Down (Cloudflare)";;
|
"521") echo -e "${OVER} ${CROSS} ${str} Web Server Is Down (Cloudflare)";;
|
||||||
"522") echo -e "${OVER} ${CROSS} ${str} Connection Timed Out (Cloudflare)";;
|
"522") echo -e "${OVER} ${CROSS} ${str} Connection Timed Out (Cloudflare)";;
|
||||||
* ) echo -e "${OVER} ${CROSS} ${str} ${httpCode}";;
|
* ) echo -e "${OVER} ${CROSS} ${str} ${httpCode}";;
|
||||||
|
esac;;
|
||||||
|
# Did we "download" a local file?
|
||||||
|
"file"*)
|
||||||
|
if [[ -s "${patternBuffer}" ]]; then
|
||||||
|
echo -e "${OVER} ${TICK} ${str} Retrieval successful"; success=true
|
||||||
|
else
|
||||||
|
echo -e "${OVER} ${CROSS} ${str} Not found / empty list"
|
||||||
|
fi;;
|
||||||
|
*) echo -e "${OVER} ${CROSS} ${str} ${url} ${httpCode}";;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Determine if the blocklist was downloaded and saved correctly
|
# Determine if the blocklist was downloaded and saved correctly
|
||||||
|
|
Loading…
Reference in a new issue