mirror of
https://github.com/pi-hole/pi-hole
synced 2024-10-31 20:59:00 +00:00
Compare commits
25 Commits
19bfa08b83
...
74a44cad7a
Author | SHA1 | Date | |
---|---|---|---|
|
74a44cad7a | ||
|
32c640e838 | ||
|
eb7daf4d2c | ||
|
7442454d32 | ||
|
3c7a6ce535 | ||
|
f3af03174e | ||
|
eaa878e7a4 | ||
|
8042d9e3fd | ||
|
9dd138b033 | ||
|
0597128de8 | ||
|
0fdd959c7f | ||
|
e03ddf5d41 | ||
|
cb3e448b38 | ||
|
b57cf27103 | ||
|
5b75cb1950 | ||
|
3ba6ab5ec7 | ||
|
f0878c0890 | ||
|
2009fa85ec | ||
|
7b6f0d1596 | ||
|
f8bfd59f11 | ||
|
37c6b353b3 | ||
|
ba2682c907 | ||
|
e773d0399f | ||
|
9eb47319f5 | ||
|
aa4ceb4198 |
3
.github/workflows/test.yml
vendored
3
.github/workflows/test.yml
vendored
@ -57,9 +57,8 @@ jobs:
|
|||||||
ubuntu_23,
|
ubuntu_23,
|
||||||
centos_8,
|
centos_8,
|
||||||
centos_9,
|
centos_9,
|
||||||
fedora_36,
|
|
||||||
fedora_37,
|
|
||||||
fedora_38,
|
fedora_38,
|
||||||
|
fedora_39,
|
||||||
]
|
]
|
||||||
env:
|
env:
|
||||||
DISTRO: ${{matrix.distro}}
|
DISTRO: ${{matrix.distro}}
|
||||||
|
32
gravity.sh
32
gravity.sh
@ -503,6 +503,7 @@ compareLists() {
|
|||||||
gravity_DownloadBlocklistFromUrl() {
|
gravity_DownloadBlocklistFromUrl() {
|
||||||
local url="${1}" adlistID="${2}" saveLocation="${3}" target="${4}" compression="${5}"
|
local url="${1}" adlistID="${2}" saveLocation="${3}" target="${4}" compression="${5}"
|
||||||
local heisenbergCompensator="" listCurlBuffer str httpCode success="" ip cmd_ext
|
local heisenbergCompensator="" listCurlBuffer str httpCode success="" ip cmd_ext
|
||||||
|
local file_path permissions ip_addr port blocked=false download=true
|
||||||
|
|
||||||
# Create temp file to store content on disk instead of RAM
|
# Create temp file to store content on disk instead of RAM
|
||||||
# We don't use '--suffix' here because not all implementations of mktemp support it, e.g. on Alpine
|
# We don't use '--suffix' here because not all implementations of mktemp support it, e.g. on Alpine
|
||||||
@ -519,7 +520,6 @@ gravity_DownloadBlocklistFromUrl() {
|
|||||||
|
|
||||||
str="Status:"
|
str="Status:"
|
||||||
echo -ne " ${INFO} ${str} Pending..."
|
echo -ne " ${INFO} ${str} Pending..."
|
||||||
blocked=false
|
|
||||||
case $BLOCKINGMODE in
|
case $BLOCKINGMODE in
|
||||||
"IP-NODATA-AAAA"|"IP")
|
"IP-NODATA-AAAA"|"IP")
|
||||||
# Get IP address of this domain
|
# Get IP address of this domain
|
||||||
@ -560,8 +560,36 @@ gravity_DownloadBlocklistFromUrl() {
|
|||||||
cmd_ext="--resolve $domain:$port:$ip"
|
cmd_ext="--resolve $domain:$port:$ip"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# If we are going to "download" a local file, we first check if the target
|
||||||
|
# file has a+r permission. We explicitly check for all+read because we want
|
||||||
|
# to make sure that the file is readable by everyone and not just the user
|
||||||
|
# running the script.
|
||||||
|
if [[ $url == "file://"* ]]; then
|
||||||
|
# Get the file path
|
||||||
|
file_path=$(echo "$url" | cut -d'/' -f3-)
|
||||||
|
# Check if the file exists
|
||||||
|
if [[ ! -e $file_path ]]; then
|
||||||
|
# Output that the file does not exist
|
||||||
|
echo -e "${OVER} ${CROSS} ${file_path} does not exist"
|
||||||
|
download=false
|
||||||
|
else
|
||||||
|
# Check if the file has a+r permissions
|
||||||
|
permissions=$(stat -c "%a" "$file_path")
|
||||||
|
if [[ $permissions == *4 || $permissions == *5 || $permissions == *6 || $permissions == *7 ]]; then
|
||||||
|
# Output that we are using the local file
|
||||||
|
echo -e "${OVER} ${INFO} Using local file ${file_path}"
|
||||||
|
else
|
||||||
|
# Output that the file does not have the correct permissions
|
||||||
|
echo -e "${OVER} ${CROSS} Cannot read file (file needs to have a+r permission)"
|
||||||
|
download=false
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${download}" == true ]]; then
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
httpCode=$(curl --connect-timeout ${curl_connect_timeout} -s -L ${compression} ${cmd_ext} ${heisenbergCompensator} -w "%{http_code}" "${url}" -o "${listCurlBuffer}" 2> /dev/null)
|
httpCode=$(curl --connect-timeout ${curl_connect_timeout} -s -L ${compression} ${cmd_ext} ${heisenbergCompensator} -w "%{http_code}" "${url}" -o "${listCurlBuffer}" 2> /dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
case $url in
|
case $url in
|
||||||
# Did we "download" a local file?
|
# Did we "download" a local file?
|
||||||
@ -569,7 +597,7 @@ gravity_DownloadBlocklistFromUrl() {
|
|||||||
if [[ -s "${listCurlBuffer}" ]]; then
|
if [[ -s "${listCurlBuffer}" ]]; then
|
||||||
echo -e "${OVER} ${TICK} ${str} Retrieval successful"; success=true
|
echo -e "${OVER} ${TICK} ${str} Retrieval successful"; success=true
|
||||||
else
|
else
|
||||||
echo -e "${OVER} ${CROSS} ${str} Not found / empty list"
|
echo -e "${OVER} ${CROSS} ${str} Retrieval failed / empty list"
|
||||||
fi;;
|
fi;;
|
||||||
# Did we "download" a remote file?
|
# Did we "download" a remote file?
|
||||||
*)
|
*)
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
FROM fedora:37
|
|
||||||
RUN dnf install -y git initscripts
|
|
||||||
|
|
||||||
ENV GITDIR /etc/.pihole
|
|
||||||
ENV SCRIPTDIR /opt/pihole
|
|
||||||
|
|
||||||
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
|
||||||
ADD . $GITDIR
|
|
||||||
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
|
|
||||||
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
|
||||||
|
|
||||||
RUN true && \
|
|
||||||
chmod +x $SCRIPTDIR/*
|
|
||||||
|
|
||||||
ENV SKIP_INSTALL true
|
|
||||||
ENV OS_CHECK_DOMAIN_NAME dev-supportedos.pi-hole.net
|
|
||||||
|
|
||||||
#sed '/# Start the installer/Q' /opt/pihole/basic-install.sh > /opt/pihole/stub_basic-install.sh && \
|
|
@ -1,4 +1,4 @@
|
|||||||
FROM fedora:36
|
FROM fedora:39
|
||||||
RUN dnf install -y git initscripts
|
RUN dnf install -y git initscripts
|
||||||
|
|
||||||
ENV GITDIR /etc/.pihole
|
ENV GITDIR /etc/.pihole
|
@ -1,6 +1,6 @@
|
|||||||
pyyaml == 6.0.1
|
pyyaml == 6.0.1
|
||||||
pytest == 7.4.4
|
pytest == 8.0.2
|
||||||
pytest-xdist == 3.5.0
|
pytest-xdist == 3.5.0
|
||||||
pytest-testinfra == 10.0.0
|
pytest-testinfra == 10.1.0
|
||||||
tox == 4.11.4
|
tox == 4.14.1
|
||||||
|
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
[tox]
|
|
||||||
envlist = py3
|
|
||||||
|
|
||||||
[testenv:py3]
|
|
||||||
allowlist_externals = docker
|
|
||||||
deps = -rrequirements.txt
|
|
||||||
commands = docker buildx build --load --progress plain -f _fedora_36.Dockerfile -t pytest_pihole:test_container ../
|
|
||||||
pytest {posargs:-vv -n auto} ./test_any_automated_install.py ./test_any_utils.py ./test_centos_fedora_common_support.py ./test_fedora_support.py
|
|
@ -4,5 +4,5 @@ envlist = py3
|
|||||||
[testenv]
|
[testenv]
|
||||||
allowlist_externals = docker
|
allowlist_externals = docker
|
||||||
deps = -rrequirements.txt
|
deps = -rrequirements.txt
|
||||||
commands = docker buildx build --load --progress plain -f _fedora_37.Dockerfile -t pytest_pihole:test_container ../
|
commands = docker buildx build --load --progress plain -f _fedora_39.Dockerfile -t pytest_pihole:test_container ../
|
||||||
pytest {posargs:-vv -n auto} ./test_any_automated_install.py ./test_any_utils.py ./test_centos_fedora_common_support.py ./test_fedora_support.py
|
pytest {posargs:-vv -n auto} ./test_any_automated_install.py ./test_any_utils.py ./test_centos_fedora_common_support.py ./test_fedora_support.py
|
Loading…
Reference in New Issue
Block a user