mirror of
https://github.com/pi-hole/pi-hole.git
synced 2024-12-24 13:50:17 +00:00
Merge branch 'development' into gravTweak
This commit is contained in:
commit
5ca6599ca9
4 changed files with 56 additions and 85 deletions
|
@ -1,69 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# Pi-hole: A black hole for Internet advertisements
|
|
||||||
# (c) 2015, 2016 by Jacob Salmela
|
|
||||||
# Network-wide ad blocking via your Raspberry Pi
|
|
||||||
# http://pi-hole.net
|
|
||||||
# Updates the Pi-hole web interface
|
|
||||||
#
|
|
||||||
# Pi-hole is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 2 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
|
|
||||||
WEB_INTERFACE_GIT_URL="https://github.com/pi-hole/AdminLTE.git"
|
|
||||||
WEB_INTERFACE_DIR="/var/www/html/admin"
|
|
||||||
|
|
||||||
main() {
|
|
||||||
prerequisites
|
|
||||||
if ! is_repo; then
|
|
||||||
make_repo
|
|
||||||
fi
|
|
||||||
update_repo
|
|
||||||
}
|
|
||||||
|
|
||||||
prerequisites() {
|
|
||||||
|
|
||||||
# must be root to update
|
|
||||||
if [[ $EUID -ne 0 ]]; then
|
|
||||||
sudo bash "$0" "$@"
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# web interface must already exist. this is a (lazy)
|
|
||||||
# check to make sure pihole is actually installed.
|
|
||||||
if [ ! -d "$WEB_INTERFACE_DIR" ]; then
|
|
||||||
echo "$WEB_INTERFACE_DIR not found. Exiting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! type "git" > /dev/null; then
|
|
||||||
apt-get -y install git
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
is_repo() {
|
|
||||||
# if the web interface directory does not have a .git folder
|
|
||||||
# it means its using the master.zip archive from the install
|
|
||||||
# script.
|
|
||||||
if [ ! -d "$WEB_INTERFACE_DIR/.git" ]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# removes the web interface installed from the master.zip archive and
|
|
||||||
# replaces it with the current master branch from github
|
|
||||||
make_repo() {
|
|
||||||
# remove the non-repod interface and clone the interface
|
|
||||||
rm -rf ${WEB_INTERFACE_DIR}
|
|
||||||
git clone "$WEB_INTERFACE_GIT_URL" "$WEB_INTERFACE_DIR"
|
|
||||||
}
|
|
||||||
|
|
||||||
# pulls the latest master branch from github
|
|
||||||
update_repo() {
|
|
||||||
# pull the latest commits
|
|
||||||
cd "$WEB_INTERFACE_DIR"
|
|
||||||
git pull
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
|
@ -13,9 +13,8 @@
|
||||||
# Download any updates from the adlists
|
# Download any updates from the adlists
|
||||||
59 1 * * 7 root /usr/local/bin/pihole updateGravity
|
59 1 * * 7 root /usr/local/bin/pihole updateGravity
|
||||||
|
|
||||||
# Pi-hole: Update the Web interface shortly after gravity runs
|
# Pi-hole: Update Pi-hole! Uncomment to enable auto update
|
||||||
# This should also update the version number if it is changed in the dashboard repo
|
#30 2 * * 7 root /usr/local/bin/pihole updatePihole
|
||||||
30 2 * * 7 root /usr/local/bin/pihole updateDashboard
|
|
||||||
|
|
||||||
# Pi-hole: Parse the log file before it is flushed and save the stats to a database
|
# Pi-hole: Parse the log file before it is flushed and save the stats to a database
|
||||||
# This will be used for a historical view of your Pi-hole's performance
|
# This will be used for a historical view of your Pi-hole's performance
|
||||||
|
|
|
@ -527,11 +527,10 @@ installScripts() {
|
||||||
${SUDO} cp /etc/.pihole/advanced/Scripts/blacklist.sh /opt/pihole/blacklist.sh
|
${SUDO} cp /etc/.pihole/advanced/Scripts/blacklist.sh /opt/pihole/blacklist.sh
|
||||||
${SUDO} cp /etc/.pihole/advanced/Scripts/piholeDebug.sh /opt/pihole/piholeDebug.sh
|
${SUDO} cp /etc/.pihole/advanced/Scripts/piholeDebug.sh /opt/pihole/piholeDebug.sh
|
||||||
${SUDO} cp /etc/.pihole/advanced/Scripts/piholeLogFlush.sh /opt/pihole/piholeLogFlush.sh
|
${SUDO} cp /etc/.pihole/advanced/Scripts/piholeLogFlush.sh /opt/pihole/piholeLogFlush.sh
|
||||||
${SUDO} cp /etc/.pihole/advanced/Scripts/updateDashboard.sh /opt/pihole/updateDashboard.sh
|
|
||||||
${SUDO} cp /etc/.pihole/automated\ install/uninstall.sh /opt/pihole/uninstall.sh
|
${SUDO} cp /etc/.pihole/automated\ install/uninstall.sh /opt/pihole/uninstall.sh
|
||||||
${SUDO} cp /etc/.pihole/advanced/Scripts/setupLCD.sh /opt/pihole/setupLCD.sh
|
${SUDO} cp /etc/.pihole/advanced/Scripts/setupLCD.sh /opt/pihole/setupLCD.sh
|
||||||
${SUDO} cp /etc/.pihole/advanced/Scripts/version.sh /opt/pihole/version.sh
|
${SUDO} cp /etc/.pihole/advanced/Scripts/version.sh /opt/pihole/version.sh
|
||||||
${SUDO} chmod 755 /opt/pihole/gravity.sh /opt/pihole/chronometer.sh /opt/pihole/whitelist.sh /opt/pihole/blacklist.sh /opt/pihole/piholeLogFlush.sh /opt/pihole/updateDashboard.sh /opt/pihole/uninstall.sh /opt/pihole/setupLCD.sh /opt/pihole/version.sh
|
${SUDO} chmod 755 /opt/pihole/gravity.sh /opt/pihole/chronometer.sh /opt/pihole/whitelist.sh /opt/pihole/blacklist.sh /opt/pihole/piholeLogFlush.sh /opt/pihole/uninstall.sh /opt/pihole/setupLCD.sh /opt/pihole/version.sh
|
||||||
${SUDO} cp /etc/.pihole/pihole /usr/local/bin/pihole
|
${SUDO} cp /etc/.pihole/pihole /usr/local/bin/pihole
|
||||||
${SUDO} chmod 755 /usr/local/bin/pihole
|
${SUDO} chmod 755 /usr/local/bin/pihole
|
||||||
${SUDO} cp /etc/.pihole/advanced/bash-completion/pihole /etc/bash_completion.d/pihole
|
${SUDO} cp /etc/.pihole/advanced/bash-completion/pihole /etc/bash_completion.d/pihole
|
||||||
|
|
64
pihole
64
pihole
|
@ -47,16 +47,60 @@ function flushFunc {
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateDashboardFunc {
|
|
||||||
${SUDO} /opt/pihole/updateDashboard.sh
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function updatePiholeFunc {
|
function updatePiholeFunc {
|
||||||
echo "::: Fetching latest changes from Github..."
|
echo "::: Checking for updates..."
|
||||||
cd /etc/.pihole
|
piholeVersion=$(cd /etc/.pihole/ && git describe --tags --abbrev=0)
|
||||||
${SUDO} git pull
|
piholeVersionLatest=$(curl -s https://api.github.com/repos/pi-hole/pi-hole/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | perl -pe 's/"tag_name": "//; s/^"//; s/",$//')
|
||||||
${SUDO} /etc/.pihole/automated\ install/basic-install.sh pihole
|
|
||||||
|
webVersion=$(cd /var/www/html/admin/ && git describe --tags --abbrev=0)
|
||||||
|
webVersionLatest=$(curl -s https://api.github.com/repos/pi-hole/AdminLTE/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | perl -pe 's/"tag_name": "//; s/^"//; s/",$//')
|
||||||
|
|
||||||
|
echo "::: Pi-hole version is $piholeVersion (Latest version is $piholeVersionLatest)"
|
||||||
|
echo "::: Web Admin version is $webVersion (Latest version is $webVersionLatest)"
|
||||||
|
echo ":::"
|
||||||
|
|
||||||
|
if [[ ${piholeVersion} == ${piholeVersionLatest} ]] ; then
|
||||||
|
echo "::: Pi-hole Base files are already up to date! Version: ${piholeVersionLatest}"
|
||||||
|
echo "::: No need to update!"
|
||||||
|
echo ":::"
|
||||||
|
|
||||||
|
if [[ ${webVersion} == ${webVersionLatest} ]] ; then
|
||||||
|
echo "::: Web Admin files are already up to date!"
|
||||||
|
echo "::: No need to update!"
|
||||||
|
echo ":::"
|
||||||
|
else
|
||||||
|
echo "::: An Update is available for the Web Admin!"
|
||||||
|
echo ":::"
|
||||||
|
echo "::: Fetching latest changes from GitHub..."
|
||||||
|
cd /var/www/html/admin
|
||||||
|
${SUDO} git pull origin master
|
||||||
|
echo ":::"
|
||||||
|
echo "::: Pi-hole Web Admin has been updated to ${webVersion}"
|
||||||
|
echo "::: See https://changes.pi-hole.net for details"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -n "::: An update is available for "
|
||||||
|
if [[ ${webVersion} == ${webVersionLatest} ]] ; then
|
||||||
|
echo " Pi-Hole!"
|
||||||
|
else
|
||||||
|
echo " Pi-Hole base files and the Web Admin. Both will be updated!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "::: Fetching latest changes from GitHub..."
|
||||||
|
cd /etc/.pihole
|
||||||
|
${SUDO} git pull origin master
|
||||||
|
${SUDO} /etc/.pihole/automated\ install/basic-install.sh pihole
|
||||||
|
|
||||||
|
echo ":::"
|
||||||
|
echo "::: Pi-hole has been updated to version ${piholeVersionLatest}"
|
||||||
|
if [[ ${webVersion} != ${webVersionLatest} ]] ; then
|
||||||
|
echo "::: Web Admin has been updated to version ${webVersionLatest}"
|
||||||
|
fi
|
||||||
|
echo ":::"
|
||||||
|
echo "::: See https://changes.pi-hole.net for details"
|
||||||
|
fi
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,8 +156,7 @@ function helpFunc {
|
||||||
echo "::: -b, blacklist Blacklist domains"
|
echo "::: -b, blacklist Blacklist domains"
|
||||||
echo "::: -d, debug Start a debugging session if having trouble"
|
echo "::: -d, debug Start a debugging session if having trouble"
|
||||||
echo "::: -f, flush Flush the pihole.log file"
|
echo "::: -f, flush Flush the pihole.log file"
|
||||||
echo "::: -ud, updateDashboard Update the web dashboard manually"
|
echo "::: -up, updatePihole Update Pi-hole"
|
||||||
echo "::: -up, updatePihole Update Pi-hole"
|
|
||||||
echo "::: -g, updateGravity Update the list of ad-serving domains"
|
echo "::: -g, updateGravity Update the list of ad-serving domains"
|
||||||
echo "::: -s, setupLCD Automatically configures the Pi to use the 2.8 LCD screen to display stats on it"
|
echo "::: -s, setupLCD Automatically configures the Pi to use the 2.8 LCD screen to display stats on it"
|
||||||
echo "::: -c, chronometer Calculates stats and displays to an LCD"
|
echo "::: -c, chronometer Calculates stats and displays to an LCD"
|
||||||
|
@ -134,7 +177,6 @@ case "$1" in
|
||||||
"-b" | "blacklist" ) blacklistFunc "$@";;
|
"-b" | "blacklist" ) blacklistFunc "$@";;
|
||||||
"-d" | "debug" ) debugFunc;;
|
"-d" | "debug" ) debugFunc;;
|
||||||
"-f" | "flush" ) flushFunc;;
|
"-f" | "flush" ) flushFunc;;
|
||||||
"-ud" | "updateDashboard" ) updateDashboardFunc;;
|
|
||||||
"-up" | "updatePihole" ) updatePiholeFunc;;
|
"-up" | "updatePihole" ) updatePiholeFunc;;
|
||||||
"-g" | "updateGravity" ) updateGravityFunc "$@";;
|
"-g" | "updateGravity" ) updateGravityFunc "$@";;
|
||||||
"-s" | "setupLCD" ) setupLCDFunction;;
|
"-s" | "setupLCD" ) setupLCDFunction;;
|
||||||
|
|
Loading…
Reference in a new issue