mirror of
https://github.com/pi-hole/pi-hole.git
synced 2024-12-25 14:20:18 +00:00
v5.17.2 (#5421)
This commit is contained in:
commit
60b6a1016c
18 changed files with 70 additions and 43 deletions
2
.github/workflows/codeql-analysis.yml
vendored
2
.github/workflows/codeql-analysis.yml
vendored
|
@ -25,7 +25,7 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
-
|
-
|
||||||
name: Checkout repository
|
name: Checkout repository
|
||||||
uses: actions/checkout@v3.5.2
|
uses: actions/checkout@v4.1.0
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
-
|
-
|
||||||
name: Initialize CodeQL
|
name: Initialize CodeQL
|
||||||
|
|
2
.github/workflows/stale.yml
vendored
2
.github/workflows/stale.yml
vendored
|
@ -40,7 +40,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3.5.2
|
uses: actions/checkout@v4.1.0
|
||||||
- name: Remove 'stale' label
|
- name: Remove 'stale' label
|
||||||
run: gh issue edit ${{ github.event.issue.number }} --remove-label ${{ env.stale_label }}
|
run: gh issue edit ${{ github.event.issue.number }} --remove-label ${{ env.stale_label }}
|
||||||
env:
|
env:
|
||||||
|
|
2
.github/workflows/sync-back-to-dev.yml
vendored
2
.github/workflows/sync-back-to-dev.yml
vendored
|
@ -33,7 +33,7 @@ jobs:
|
||||||
name: Syncing branches
|
name: Syncing branches
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3.5.2
|
uses: actions/checkout@v4.1.0
|
||||||
- name: Opening pull request
|
- name: Opening pull request
|
||||||
run: gh pr create -B development -H master --title 'Sync master back into development' --body 'Created by Github action' --label 'internal'
|
run: gh pr create -B development -H master --title 'Sync master back into development' --body 'Created by Github action' --label 'internal'
|
||||||
env:
|
env:
|
||||||
|
|
7
.github/workflows/test.yml
vendored
7
.github/workflows/test.yml
vendored
|
@ -13,7 +13,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v3.5.2
|
uses: actions/checkout@v4.1.0
|
||||||
|
|
||||||
- name: Check scripts in repository are executable
|
- name: Check scripts in repository are executable
|
||||||
run: |
|
run: |
|
||||||
|
@ -51,6 +51,7 @@ jobs:
|
||||||
[
|
[
|
||||||
debian_10,
|
debian_10,
|
||||||
debian_11,
|
debian_11,
|
||||||
|
debian_12,
|
||||||
ubuntu_20,
|
ubuntu_20,
|
||||||
ubuntu_22,
|
ubuntu_22,
|
||||||
ubuntu_23,
|
ubuntu_23,
|
||||||
|
@ -64,10 +65,10 @@ jobs:
|
||||||
DISTRO: ${{matrix.distro}}
|
DISTRO: ${{matrix.distro}}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v3.5.2
|
uses: actions/checkout@v4.1.0
|
||||||
|
|
||||||
- name: Set up Python 3.10
|
- name: Set up Python 3.10
|
||||||
uses: actions/setup-python@v4.6.1
|
uses: actions/setup-python@v4.7.1
|
||||||
with:
|
with:
|
||||||
python-version: "3.10"
|
python-version: "3.10"
|
||||||
|
|
||||||
|
|
|
@ -150,7 +150,7 @@ You can read our [Core Feature Breakdown](https://docs.pi-hole.net/core/pihole-c
|
||||||
|
|
||||||
### The Web Interface Dashboard
|
### The Web Interface Dashboard
|
||||||
|
|
||||||
This [optional dashboard](https://github.com/pi-hole/AdminLTE) allows you to view stats, change settings, and configure your Pi-hole. It's the power of the Command Line Interface, with none of the learning curve!
|
This [optional dashboard](https://github.com/pi-hole/web) allows you to view stats, change settings, and configure your Pi-hole. It's the power of the Command Line Interface, with none of the learning curve!
|
||||||
|
|
||||||
Some notable features include:
|
Some notable features include:
|
||||||
|
|
||||||
|
|
|
@ -233,7 +233,7 @@ get_sys_stats() {
|
||||||
if [[ -n "${ph_ver_raw[0]}" ]]; then
|
if [[ -n "${ph_ver_raw[0]}" ]]; then
|
||||||
ph_core_ver="${ph_ver_raw[0]}"
|
ph_core_ver="${ph_ver_raw[0]}"
|
||||||
if [[ ${#ph_ver_raw[@]} -eq 2 ]]; then
|
if [[ ${#ph_ver_raw[@]} -eq 2 ]]; then
|
||||||
# AdminLTE not installed
|
# web not installed
|
||||||
ph_lte_ver="(not installed)"
|
ph_lte_ver="(not installed)"
|
||||||
ph_ftl_ver="${ph_ver_raw[1]}"
|
ph_ftl_ver="${ph_ver_raw[1]}"
|
||||||
else
|
else
|
||||||
|
|
|
@ -449,7 +449,7 @@ os_check() {
|
||||||
}
|
}
|
||||||
|
|
||||||
diagnose_operating_system() {
|
diagnose_operating_system() {
|
||||||
# error message in a variable so we can easily modify it later (or re-use it)
|
# error message in a variable so we can easily modify it later (or reuse it)
|
||||||
local error_msg="Distribution unknown -- most likely you are on an unsupported platform and may run into issues."
|
local error_msg="Distribution unknown -- most likely you are on an unsupported platform and may run into issues."
|
||||||
# Display the current test that is running
|
# Display the current test that is running
|
||||||
echo_current_diagnostic "Operating system"
|
echo_current_diagnostic "Operating system"
|
||||||
|
@ -861,11 +861,15 @@ dig_at() {
|
||||||
local record_type="A"
|
local record_type="A"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Find a random blocked url that has not been whitelisted.
|
# Find a random blocked url that has not been whitelisted and is not ABP style.
|
||||||
# This helps emulate queries to different domains that a user might query
|
# This helps emulate queries to different domains that a user might query
|
||||||
# It will also give extra assurance that Pi-hole is correctly resolving and blocking domains
|
# It will also give extra assurance that Pi-hole is correctly resolving and blocking domains
|
||||||
local random_url
|
local random_url
|
||||||
random_url=$(pihole-FTL sqlite3 "${PIHOLE_GRAVITY_DB_FILE}" "SELECT domain FROM vw_gravity ORDER BY RANDOM() LIMIT 1")
|
random_url=$(pihole-FTL sqlite3 "${PIHOLE_GRAVITY_DB_FILE}" "SELECT domain FROM vw_gravity WHERE domain not like '||%^' ORDER BY RANDOM() LIMIT 1")
|
||||||
|
# Fallback if no non-ABP style domains were found
|
||||||
|
if [ -z "${random_url}" ]; then
|
||||||
|
random_url="flurry.com"
|
||||||
|
fi
|
||||||
|
|
||||||
# Next we need to check if Pi-hole can resolve a domain when the query is sent to it's IP address
|
# Next we need to check if Pi-hole can resolve a domain when the query is sent to it's IP address
|
||||||
# This better emulates how clients will interact with Pi-hole as opposed to above where Pi-hole is
|
# This better emulates how clients will interact with Pi-hole as opposed to above where Pi-hole is
|
||||||
|
@ -1499,7 +1503,7 @@ upload_to_tricorder() {
|
||||||
# If no token was generated
|
# If no token was generated
|
||||||
else
|
else
|
||||||
# Show an error and some help instructions
|
# Show an error and some help instructions
|
||||||
# Skip this if being called from web interface and autmatic mode was not chosen (users opt-out to upload)
|
# Skip this if being called from web interface and automatic mode was not chosen (users opt-out to upload)
|
||||||
if [[ "${WEBCALL}" ]] && [[ ! "${AUTOMATED}" ]]; then
|
if [[ "${WEBCALL}" ]] && [[ ! "${AUTOMATED}" ]]; then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
# Please see LICENSE file for your rights under this license.
|
# Please see LICENSE file for your rights under this license.
|
||||||
|
|
||||||
# Variables
|
# Variables
|
||||||
readonly ADMIN_INTERFACE_GIT_URL="https://github.com/pi-hole/AdminLTE.git"
|
readonly ADMIN_INTERFACE_GIT_URL="https://github.com/pi-hole/web.git"
|
||||||
readonly ADMIN_INTERFACE_DIR="/var/www/html/admin"
|
readonly ADMIN_INTERFACE_DIR="/var/www/html/admin"
|
||||||
readonly PI_HOLE_GIT_URL="https://github.com/pi-hole/pi-hole.git"
|
readonly PI_HOLE_GIT_URL="https://github.com/pi-hole/pi-hole.git"
|
||||||
readonly PI_HOLE_FILES_DIR="/etc/.pihole"
|
readonly PI_HOLE_FILES_DIR="/etc/.pihole"
|
||||||
|
|
|
@ -97,10 +97,10 @@ if [[ "${INSTALL_WEB_INTERFACE}" == true ]]; then
|
||||||
WEB_HASH="$(get_local_hash /var/www/html/admin)"
|
WEB_HASH="$(get_local_hash /var/www/html/admin)"
|
||||||
addOrEditKeyValPair "${VERSION_FILE}" "WEB_HASH" "${WEB_HASH}"
|
addOrEditKeyValPair "${VERSION_FILE}" "WEB_HASH" "${WEB_HASH}"
|
||||||
|
|
||||||
GITHUB_WEB_VERSION="$(get_remote_version AdminLTE)"
|
GITHUB_WEB_VERSION="$(get_remote_version web)"
|
||||||
addOrEditKeyValPair "${VERSION_FILE}" "GITHUB_WEB_VERSION" "${GITHUB_WEB_VERSION}"
|
addOrEditKeyValPair "${VERSION_FILE}" "GITHUB_WEB_VERSION" "${GITHUB_WEB_VERSION}"
|
||||||
|
|
||||||
GITHUB_WEB_HASH="$(get_remote_hash AdminLTE "${WEB_BRANCH}")"
|
GITHUB_WEB_HASH="$(get_remote_hash web "${WEB_BRANCH}")"
|
||||||
addOrEditKeyValPair "${VERSION_FILE}" "GITHUB_WEB_HASH" "${GITHUB_WEB_HASH}"
|
addOrEditKeyValPair "${VERSION_FILE}" "GITHUB_WEB_HASH" "${GITHUB_WEB_HASH}"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -28,7 +28,7 @@ fi
|
||||||
getLocalVersion() {
|
getLocalVersion() {
|
||||||
case ${1} in
|
case ${1} in
|
||||||
"Pi-hole" ) echo "${CORE_VERSION:=N/A}";;
|
"Pi-hole" ) echo "${CORE_VERSION:=N/A}";;
|
||||||
"AdminLTE" ) [ "${INSTALL_WEB_INTERFACE}" = true ] && echo "${WEB_VERSION:=N/A}";;
|
"web" ) [ "${INSTALL_WEB_INTERFACE}" = true ] && echo "${WEB_VERSION:=N/A}";;
|
||||||
"FTL" ) echo "${FTL_VERSION:=N/A}";;
|
"FTL" ) echo "${FTL_VERSION:=N/A}";;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ getLocalVersion() {
|
||||||
getLocalHash() {
|
getLocalHash() {
|
||||||
case ${1} in
|
case ${1} in
|
||||||
"Pi-hole" ) echo "${CORE_HASH:=N/A}";;
|
"Pi-hole" ) echo "${CORE_HASH:=N/A}";;
|
||||||
"AdminLTE" ) [ "${INSTALL_WEB_INTERFACE}" = true ] && echo "${WEB_HASH:=N/A}";;
|
"web" ) [ "${INSTALL_WEB_INTERFACE}" = true ] && echo "${WEB_HASH:=N/A}";;
|
||||||
"FTL" ) echo "${FTL_HASH:=N/A}";;
|
"FTL" ) echo "${FTL_HASH:=N/A}";;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ getLocalHash() {
|
||||||
getRemoteHash(){
|
getRemoteHash(){
|
||||||
case ${1} in
|
case ${1} in
|
||||||
"Pi-hole" ) echo "${GITHUB_CORE_HASH:=N/A}";;
|
"Pi-hole" ) echo "${GITHUB_CORE_HASH:=N/A}";;
|
||||||
"AdminLTE" ) [ "${INSTALL_WEB_INTERFACE}" = true ] && echo "${GITHUB_WEB_HASH:=N/A}";;
|
"web" ) [ "${INSTALL_WEB_INTERFACE}" = true ] && echo "${GITHUB_WEB_HASH:=N/A}";;
|
||||||
"FTL" ) echo "${GITHUB_FTL_HASH:=N/A}";;
|
"FTL" ) echo "${GITHUB_FTL_HASH:=N/A}";;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ getRemoteHash(){
|
||||||
getRemoteVersion(){
|
getRemoteVersion(){
|
||||||
case ${1} in
|
case ${1} in
|
||||||
"Pi-hole" ) echo "${GITHUB_CORE_VERSION:=N/A}";;
|
"Pi-hole" ) echo "${GITHUB_CORE_VERSION:=N/A}";;
|
||||||
"AdminLTE" ) [ "${INSTALL_WEB_INTERFACE}" = true ] && echo "${GITHUB_WEB_VERSION:=N/A}";;
|
"web" ) [ "${INSTALL_WEB_INTERFACE}" = true ] && echo "${GITHUB_WEB_VERSION:=N/A}";;
|
||||||
"FTL" ) echo "${GITHUB_FTL_VERSION:=N/A}";;
|
"FTL" ) echo "${GITHUB_FTL_VERSION:=N/A}";;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
@ -60,13 +60,13 @@ getRemoteVersion(){
|
||||||
getLocalBranch(){
|
getLocalBranch(){
|
||||||
case ${1} in
|
case ${1} in
|
||||||
"Pi-hole" ) echo "${CORE_BRANCH:=N/A}";;
|
"Pi-hole" ) echo "${CORE_BRANCH:=N/A}";;
|
||||||
"AdminLTE" ) [ "${INSTALL_WEB_INTERFACE}" = true ] && echo "${WEB_BRANCH:=N/A}";;
|
"web" ) [ "${INSTALL_WEB_INTERFACE}" = true ] && echo "${WEB_BRANCH:=N/A}";;
|
||||||
"FTL" ) echo "${FTL_BRANCH:=N/A}";;
|
"FTL" ) echo "${FTL_BRANCH:=N/A}";;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
versionOutput() {
|
versionOutput() {
|
||||||
if [ "$1" = "AdminLTE" ] && [ "${INSTALL_WEB_INTERFACE}" != true ]; then
|
if [ "$1" = "web" ] && [ "${INSTALL_WEB_INTERFACE}" != true ]; then
|
||||||
echo " WebAdmin not installed"
|
echo " WebAdmin not installed"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
@ -117,7 +117,7 @@ defaultOutput() {
|
||||||
versionOutput "Pi-hole" "$@"
|
versionOutput "Pi-hole" "$@"
|
||||||
|
|
||||||
if [ "${INSTALL_WEB_INTERFACE}" = true ]; then
|
if [ "${INSTALL_WEB_INTERFACE}" = true ]; then
|
||||||
versionOutput "AdminLTE" "$@"
|
versionOutput "web" "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
versionOutput "FTL" "$@"
|
versionOutput "FTL" "$@"
|
||||||
|
@ -130,7 +130,7 @@ Show Pi-hole, Admin Console & FTL versions
|
||||||
|
|
||||||
Repositories:
|
Repositories:
|
||||||
-p, --pihole Only retrieve info regarding Pi-hole repository
|
-p, --pihole Only retrieve info regarding Pi-hole repository
|
||||||
-a, --admin Only retrieve info regarding AdminLTE repository
|
-a, --admin Only retrieve info regarding web repository
|
||||||
-f, --ftl Only retrieve info regarding FTL repository
|
-f, --ftl Only retrieve info regarding FTL repository
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
@ -143,7 +143,7 @@ Options:
|
||||||
|
|
||||||
case "${1}" in
|
case "${1}" in
|
||||||
"-p" | "--pihole" ) shift; versionOutput "Pi-hole" "$@";;
|
"-p" | "--pihole" ) shift; versionOutput "Pi-hole" "$@";;
|
||||||
"-a" | "--admin" ) shift; versionOutput "AdminLTE" "$@";;
|
"-a" | "--admin" ) shift; versionOutput "web" "$@";;
|
||||||
"-f" | "--ftl" ) shift; versionOutput "FTL" "$@";;
|
"-f" | "--ftl" ) shift; versionOutput "FTL" "$@";;
|
||||||
"-h" | "--help" ) helpFunc;;
|
"-h" | "--help" ) helpFunc;;
|
||||||
* ) defaultOutput "$@";;
|
* ) defaultOutput "$@";;
|
||||||
|
|
|
@ -348,7 +348,7 @@ SetDNSServers() {
|
||||||
IFS=',' read -r -a array <<< "${args[2]}"
|
IFS=',' read -r -a array <<< "${args[2]}"
|
||||||
for index in "${!array[@]}"
|
for index in "${!array[@]}"
|
||||||
do
|
do
|
||||||
# Replace possible "\#" by "#". This fixes AdminLTE#1427
|
# Replace possible "\#" by "#". This fixes web#1427
|
||||||
local ip
|
local ip
|
||||||
ip="${array[index]//\\#/#}"
|
ip="${array[index]//\\#/#}"
|
||||||
|
|
||||||
|
|
|
@ -68,11 +68,11 @@ webroot="/var/www/html"
|
||||||
|
|
||||||
|
|
||||||
# We clone (or update) two git repositories during the install. This helps to make sure that we always have the latest versions of the relevant files.
|
# We clone (or update) two git repositories during the install. This helps to make sure that we always have the latest versions of the relevant files.
|
||||||
# AdminLTE is used to set up the Web admin interface.
|
# web is used to set up the Web admin interface.
|
||||||
# Pi-hole contains various setup scripts and files which are critical to the installation.
|
# Pi-hole contains various setup scripts and files which are critical to the installation.
|
||||||
# Search for "PI_HOLE_LOCAL_REPO" in this file to see all such scripts.
|
# Search for "PI_HOLE_LOCAL_REPO" in this file to see all such scripts.
|
||||||
# Two notable scripts are gravity.sh (used to generate the HOSTS file) and advanced/Scripts/webpage.sh (used to install the Web admin interface)
|
# Two notable scripts are gravity.sh (used to generate the HOSTS file) and advanced/Scripts/webpage.sh (used to install the Web admin interface)
|
||||||
webInterfaceGitUrl="https://github.com/pi-hole/AdminLTE.git"
|
webInterfaceGitUrl="https://github.com/pi-hole/web.git"
|
||||||
webInterfaceDir="${webroot}/admin"
|
webInterfaceDir="${webroot}/admin"
|
||||||
piholeGitUrl="https://github.com/pi-hole/pi-hole.git"
|
piholeGitUrl="https://github.com/pi-hole/pi-hole.git"
|
||||||
PI_HOLE_LOCAL_REPO="/etc/.pihole"
|
PI_HOLE_LOCAL_REPO="/etc/.pihole"
|
||||||
|
@ -334,7 +334,7 @@ package_manager_detect() {
|
||||||
# Packages required for the Web admin interface (stored as an array)
|
# Packages required for the Web admin interface (stored as an array)
|
||||||
# It's useful to separate this from Pi-hole, since the two repos are also setup separately
|
# It's useful to separate this from Pi-hole, since the two repos are also setup separately
|
||||||
PIHOLE_WEB_DEPS=(lighttpd "${phpVer}-common" "${phpVer}-cgi" "${phpVer}-sqlite3" "${phpVer}-xml" "${phpVer}-intl")
|
PIHOLE_WEB_DEPS=(lighttpd "${phpVer}-common" "${phpVer}-cgi" "${phpVer}-sqlite3" "${phpVer}-xml" "${phpVer}-intl")
|
||||||
# Prior to PHP8.0, JSON functionality is provided as dedicated module, required by Pi-hole AdminLTE: https://www.php.net/manual/json.installation.php
|
# Prior to PHP8.0, JSON functionality is provided as dedicated module, required by Pi-hole web: https://www.php.net/manual/json.installation.php
|
||||||
if [[ -z "${phpInsMajor}" || "${phpInsMajor}" -lt 8 ]]; then
|
if [[ -z "${phpInsMajor}" || "${phpInsMajor}" -lt 8 ]]; then
|
||||||
PIHOLE_WEB_DEPS+=("${phpVer}-json")
|
PIHOLE_WEB_DEPS+=("${phpVer}-json")
|
||||||
fi
|
fi
|
||||||
|
@ -2685,7 +2685,7 @@ main() {
|
||||||
# Check for and disable systemd-resolved-DNSStubListener before reloading resolved
|
# Check for and disable systemd-resolved-DNSStubListener before reloading resolved
|
||||||
# DNSStubListener needs to remain in place for installer to download needed files,
|
# DNSStubListener needs to remain in place for installer to download needed files,
|
||||||
# so this change needs to be made after installation is complete,
|
# so this change needs to be made after installation is complete,
|
||||||
# but before starting or resarting the dnsmasq or ftl services
|
# but before starting or restarting the dnsmasq or ftl services
|
||||||
disable_resolved_stublistener
|
disable_resolved_stublistener
|
||||||
|
|
||||||
# If the Web server was installed,
|
# If the Web server was installed,
|
||||||
|
|
11
gravity.sh
11
gravity.sh
|
@ -401,7 +401,7 @@ gravity_DownloadBlocklists() {
|
||||||
unset sources
|
unset sources
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local url domain agent str target compression
|
local url domain str target compression
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Prepare new gravity database
|
# Prepare new gravity database
|
||||||
|
@ -457,9 +457,6 @@ gravity_DownloadBlocklists() {
|
||||||
saveLocation="${piholeDir}/list.${id}.${domain}.${domainsExtension}"
|
saveLocation="${piholeDir}/list.${id}.${domain}.${domainsExtension}"
|
||||||
activeDomains[$i]="${saveLocation}"
|
activeDomains[$i]="${saveLocation}"
|
||||||
|
|
||||||
# Default user-agent (for Cloudflare's Browser Integrity Check: https://support.cloudflare.com/hc/en-us/articles/200170086-What-does-the-Browser-Integrity-Check-do-)
|
|
||||||
agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
|
|
||||||
|
|
||||||
echo -e " ${INFO} Target: ${url}"
|
echo -e " ${INFO} Target: ${url}"
|
||||||
local regex check_url
|
local regex check_url
|
||||||
# Check for characters NOT allowed in URLs
|
# Check for characters NOT allowed in URLs
|
||||||
|
@ -472,7 +469,7 @@ gravity_DownloadBlocklists() {
|
||||||
if [[ "${check_url}" =~ ${regex} ]]; then
|
if [[ "${check_url}" =~ ${regex} ]]; then
|
||||||
echo -e " ${CROSS} Invalid Target"
|
echo -e " ${CROSS} Invalid Target"
|
||||||
else
|
else
|
||||||
gravity_DownloadBlocklistFromUrl "${url}" "${agent}" "${sourceIDs[$i]}" "${saveLocation}" "${target}" "${compression}"
|
gravity_DownloadBlocklistFromUrl "${url}" "${sourceIDs[$i]}" "${saveLocation}" "${target}" "${compression}"
|
||||||
fi
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
done
|
done
|
||||||
|
@ -504,7 +501,7 @@ compareLists() {
|
||||||
|
|
||||||
# Download specified URL and perform checks on HTTP status and file content
|
# Download specified URL and perform checks on HTTP status and file content
|
||||||
gravity_DownloadBlocklistFromUrl() {
|
gravity_DownloadBlocklistFromUrl() {
|
||||||
local url="${1}" agent="${2}" adlistID="${3}" saveLocation="${4}" target="${5}" compression="${6}"
|
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
|
||||||
|
|
||||||
# Create temp file to store content on disk instead of RAM
|
# Create temp file to store content on disk instead of RAM
|
||||||
|
@ -564,7 +561,7 @@ gravity_DownloadBlocklistFromUrl() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
httpCode=$(curl --connect-timeout ${curl_connect_timeout} -s -L ${compression} ${cmd_ext} ${heisenbergCompensator} -w "%{http_code}" -A "${agent}" "${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)
|
||||||
|
|
||||||
case $url in
|
case $url in
|
||||||
# Did we "download" a local file?
|
# Did we "download" a local file?
|
||||||
|
|
|
@ -212,7 +212,7 @@ Available commands and options:
|
||||||
.br
|
.br
|
||||||
-p, --pihole Only retrieve info regarding Pi-hole repository
|
-p, --pihole Only retrieve info regarding Pi-hole repository
|
||||||
.br
|
.br
|
||||||
-a, --admin Only retrieve info regarding AdminLTE
|
-a, --admin Only retrieve info regarding web
|
||||||
repository
|
repository
|
||||||
.br
|
.br
|
||||||
-f, --ftl Only retrieve info regarding FTL repository
|
-f, --ftl Only retrieve info regarding FTL repository
|
||||||
|
@ -339,7 +339,7 @@ Displaying version information
|
||||||
|
|
||||||
\fBpihole -v -a -c\fR
|
\fBpihole -v -a -c\fR
|
||||||
.br
|
.br
|
||||||
Display the current version of AdminLTE
|
Display the current version of web
|
||||||
.br
|
.br
|
||||||
|
|
||||||
Temporarily disabling Pi-hole
|
Temporarily disabling Pi-hole
|
||||||
|
|
17
test/_debian_12.Dockerfile
Normal file
17
test/_debian_12.Dockerfile
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
FROM buildpack-deps:bookworm-scm
|
||||||
|
|
||||||
|
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,6 +1,6 @@
|
||||||
docker-compose == 1.29.2
|
pyyaml == 6.0.1
|
||||||
pytest == 7.3.1
|
pytest == 7.4.2
|
||||||
pytest-xdist == 3.3.1
|
pytest-xdist == 3.3.1
|
||||||
pytest-testinfra == 8.1.0
|
pytest-testinfra == 9.0.0
|
||||||
tox == 4.5.1
|
tox == 4.11.3
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ def test_setupVars_are_sourced_to_global_scope(host):
|
||||||
|
|
||||||
def test_setupVars_saved_to_file(host):
|
def test_setupVars_saved_to_file(host):
|
||||||
"""
|
"""
|
||||||
confirm saved settings are written to a file for future updates to re-use
|
confirm saved settings are written to a file for future updates to reuse
|
||||||
"""
|
"""
|
||||||
# dedent works better with this and padding matching script below
|
# dedent works better with this and padding matching script below
|
||||||
set_setup_vars = "\n"
|
set_setup_vars = "\n"
|
||||||
|
|
8
test/tox.debian_12.ini
Normal file
8
test/tox.debian_12.ini
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[tox]
|
||||||
|
envlist = py3
|
||||||
|
|
||||||
|
[testenv:py3]
|
||||||
|
allowlist_externals = docker
|
||||||
|
deps = -rrequirements.txt
|
||||||
|
commands = docker buildx build --load --progress plain -f _debian_12.Dockerfile -t pytest_pihole:test_container ../
|
||||||
|
pytest {posargs:-vv -n auto} ./test_any_automated_install.py ./test_any_utils.py
|
Loading…
Reference in a new issue