Merge pull request #609 from pi-hole/CLI_VersionCheck

Cli version check
This commit is contained in:
Mcat12 2016-08-03 21:21:30 -04:00 committed by GitHub
commit acc5fa2a95
3 changed files with 71 additions and 43 deletions

View file

@ -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)"

View file

@ -547,7 +547,8 @@ installScripts() {
$SUDO cp /etc/.pihole/advanced/Scripts/updateDashboard.sh /opt/pihole/updateDashboard.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 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 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

91
pihole
View file

@ -12,13 +12,13 @@
# Must be root to use this tool # Must be root to use this tool
if [[ ! $EUID -eq 0 ]];then if [[ ! $EUID -eq 0 ]];then
#echo "::: You are root." #echo "::: You are root."
#else #else
#echo "::: Sudo will be used for this tool." #echo "::: Sudo will be used for this tool."
# Check if it is actually installed # Check if it is actually installed
# If it isn't, exit because the pihole cannot be invoked without privileges. # If it isn't, exit because the pihole cannot be invoked without privileges.
if [ -x "$(command -v sudo)" ];then if [ -x "$(command -v sudo)" ];then
export SUDO="sudo" export SUDO="sudo"
else else
echo "::: Please install sudo or run this as root." echo "::: Please install sudo or run this as root."
exit 1 exit 1
@ -26,76 +26,82 @@ if [[ ! $EUID -eq 0 ]];then
fi fi
function whitelistFunc { function whitelistFunc {
shift shift
$SUDO /opt/pihole/whitelist.sh "$@" $SUDO /opt/pihole/whitelist.sh "$@"
exit 1 exit 1
} }
function blacklistFunc { function blacklistFunc {
shift shift
$SUDO /opt/pihole/blacklist.sh "$@" $SUDO /opt/pihole/blacklist.sh "$@"
exit 1 exit 1
} }
function debugFunc { function debugFunc {
$SUDO /opt/pihole/piholeDebug.sh $SUDO /opt/pihole/piholeDebug.sh
exit 1 exit 1
} }
function flushFunc { function flushFunc {
$SUDO /opt/pihole/piholeLogFlush.sh $SUDO /opt/pihole/piholeLogFlush.sh
exit 1 exit 1
} }
function updateDashboardFunc { function updateDashboardFunc {
$SUDO /opt/pihole/updateDashboard.sh $SUDO /opt/pihole/updateDashboard.sh
exit 1 exit 1
} }
function updateGravityFunc { function updateGravityFunc {
$SUDO /opt/pihole/gravity.sh $SUDO /opt/pihole/gravity.sh
exit 1 exit 1
} }
function setupLCDFunction { function setupLCDFunction {
$SUDO /opt/pihole/setupLCD.sh $SUDO /opt/pihole/setupLCD.sh
exit 1 exit 1
} }
function chronometerFunc { function chronometerFunc {
shift shift
$SUDO /opt/pihole/chronometer.sh "$@" $SUDO /opt/pihole/chronometer.sh "$@"
exit 1 exit 1
} }
function uninstallFunc { function uninstallFunc {
$SUDO /opt/pihole/uninstall.sh $SUDO /opt/pihole/uninstall.sh
exit 1 exit 1
}
function versionFunc {
$SUDO /opt/pihole/version.sh
exit 1
} }
function helpFunc { function helpFunc {
echo "::: Control all PiHole specific functions!" echo "::: Control all PiHole specific functions!"
echo ":::" echo ":::"
echo "::: Usage: pihole [options]" echo "::: Usage: pihole [options]"
echo "::: Add -h after -w (whitelist), -b (blacklist), or -c (chronometer) for more information on usage" echo "::: Add -h after -w (whitelist), -b (blacklist), or -c (chronometer) for more information on usage"
echo ":::" echo ":::"
echo "::: Options:" echo "::: Options:"
echo "::: -w, whitelist Whitelist domains" echo "::: -w, whitelist Whitelist domains"
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 "::: -u, updateDashboard Update the web dashboard manually" echo "::: -u, updateDashboard Update the web dashboard manually"
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"
echo "::: -h, help Show this help dialog" echo "::: -h, help Show this help dialog"
echo "::: uninstall Uninstall Pi-Hole from your system!" echo "::: -v, version Show current versions"
exit 1 echo "::: uninstall Uninstall Pi-Hole from your system :(!"
exit 1
} }
if [[ $# = 0 ]]; then if [[ $# = 0 ]]; then
helpFunc helpFunc
fi fi
# Handle redirecting to specific functions based on arguments # Handle redirecting to specific functions based on arguments
@ -109,6 +115,7 @@ case "$1" in
"-s" | "setupLCD" ) setupLCDFunction;; "-s" | "setupLCD" ) setupLCDFunction;;
"-c" | "chronometer" ) chronometerFunc "$@";; "-c" | "chronometer" ) chronometerFunc "$@";;
"-h" | "help" ) helpFunc;; "-h" | "help" ) helpFunc;;
"-v" | "version" ) versionFunc;;
"uninstall" ) uninstallFunc;; "uninstall" ) uninstallFunc;;
* ) helpFunc;; * ) helpFunc;;
esac esac