diff --git a/advanced/Scripts/version.sh b/advanced/Scripts/version.sh new file mode 100644 index 00000000..e7e7c782 --- /dev/null +++ b/advanced/Scripts/version.sh @@ -0,0 +1,20 @@ +#!/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 +# Whitelists domains +# +# 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. + +piholeVersion=$(cd /etc/.pihole/ && git describe --tags --abbrev=0) +webVersion=$(cd /var/www/html/admin/ && git describe --tags --abbrev=0) + +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/",$//') +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)" \ No newline at end of file diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 29e3237f..254d601f 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -547,7 +547,8 @@ installScripts() { $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/advanced/Scripts/setupLCD.sh /opt/pihole/setupLCD.sh - $SUDO chmod 755 /opt/pihole/{gravity,chronometer,whitelist,blacklist,piholeLogFlush,updateDashboard,uninstall,setupLCD}.sh + $SUDO cp /etc/.pihole/advanced/Scripts/version.sh /opt/pihole/version.sh + $SUDO chmod 755 /opt/pihole/{gravity,chronometer,whitelist,blacklist,piholeLogFlush,updateDashboard,uninstall,setupLCD,version}.sh $SUDO cp /etc/.pihole/pihole /usr/local/bin/pihole $SUDO chmod 755 /usr/local/bin/pihole $SUDO cp /etc/.pihole/advanced/bash-completion/pihole /etc/bash_completion.d/pihole diff --git a/pihole b/pihole index bbcb82d0..64a36c59 100755 --- a/pihole +++ b/pihole @@ -12,13 +12,13 @@ # Must be root to use this tool if [[ ! $EUID -eq 0 ]];then - #echo "::: You are root." + #echo "::: You are root." #else - #echo "::: Sudo will be used for this tool." + #echo "::: Sudo will be used for this tool." # Check if it is actually installed # If it isn't, exit because the pihole cannot be invoked without privileges. if [ -x "$(command -v sudo)" ];then - export SUDO="sudo" + export SUDO="sudo" else echo "::: Please install sudo or run this as root." exit 1 @@ -26,76 +26,82 @@ if [[ ! $EUID -eq 0 ]];then fi function whitelistFunc { - shift - $SUDO /opt/pihole/whitelist.sh "$@" - exit 1 + shift + $SUDO /opt/pihole/whitelist.sh "$@" + exit 1 } function blacklistFunc { - shift - $SUDO /opt/pihole/blacklist.sh "$@" - exit 1 + shift + $SUDO /opt/pihole/blacklist.sh "$@" + exit 1 } function debugFunc { - $SUDO /opt/pihole/piholeDebug.sh - exit 1 + $SUDO /opt/pihole/piholeDebug.sh + exit 1 } function flushFunc { - $SUDO /opt/pihole/piholeLogFlush.sh - exit 1 + $SUDO /opt/pihole/piholeLogFlush.sh + exit 1 } function updateDashboardFunc { - $SUDO /opt/pihole/updateDashboard.sh - exit 1 + $SUDO /opt/pihole/updateDashboard.sh + exit 1 } function updateGravityFunc { - $SUDO /opt/pihole/gravity.sh - exit 1 + $SUDO /opt/pihole/gravity.sh + exit 1 } function setupLCDFunction { - $SUDO /opt/pihole/setupLCD.sh - exit 1 + $SUDO /opt/pihole/setupLCD.sh + exit 1 } function chronometerFunc { - shift - $SUDO /opt/pihole/chronometer.sh "$@" - exit 1 + shift + $SUDO /opt/pihole/chronometer.sh "$@" + exit 1 } function uninstallFunc { - $SUDO /opt/pihole/uninstall.sh - exit 1 + $SUDO /opt/pihole/uninstall.sh + exit 1 +} + +function versionFunc { + $SUDO /opt/pihole/version.sh + exit 1 } function helpFunc { - echo "::: Control all PiHole specific functions!" - echo ":::" - echo "::: Usage: pihole [options]" - echo "::: Add -h after -w (whitelist), -b (blacklist), or -c (chronometer) for more information on usage" - echo ":::" - echo "::: Options:" - echo "::: -w, whitelist Whitelist domains" - echo "::: -b, blacklist Blacklist domains" - echo "::: -d, debug Start a debugging session if having trouble" - echo "::: -f, flush Flush the pihole.log file" - echo "::: -u, updateDashboard Update the web dashboard manually" - 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 "::: -c, chronometer Calculates stats and displays to an LCD" - echo "::: -h, help Show this help dialog" - echo "::: uninstall Uninstall Pi-Hole from your system!" - exit 1 + echo "::: Control all PiHole specific functions!" + echo ":::" + echo "::: Usage: pihole [options]" + echo "::: Add -h after -w (whitelist), -b (blacklist), or -c (chronometer) for more information on usage" + echo ":::" + echo "::: Options:" + echo "::: -w, whitelist Whitelist domains" + echo "::: -b, blacklist Blacklist domains" + echo "::: -d, debug Start a debugging session if having trouble" + echo "::: -f, flush Flush the pihole.log file" + echo "::: -u, updateDashboard Update the web dashboard manually" + 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 "::: -c, chronometer Calculates stats and displays to an LCD" + echo "::: -h, help Show this help dialog" + echo "::: -v, version Show current versions" + echo "::: uninstall Uninstall Pi-Hole from your system :(!" + exit 1 } if [[ $# = 0 ]]; then - helpFunc + helpFunc fi # Handle redirecting to specific functions based on arguments @@ -109,6 +115,7 @@ case "$1" in "-s" | "setupLCD" ) setupLCDFunction;; "-c" | "chronometer" ) chronometerFunc "$@";; "-h" | "help" ) helpFunc;; +"-v" | "version" ) versionFunc;; "uninstall" ) uninstallFunc;; * ) helpFunc;; esac