mirror of
https://github.com/pi-hole/pi-hole.git
synced 2024-12-01 02:23:21 +00:00
external file for pihole variables
This commit is contained in:
parent
02c3f51f30
commit
e57ff3f462
1 changed files with 121 additions and 0 deletions
121
advanced/pihole.vars
Normal file
121
advanced/pihole.vars
Normal file
|
@ -0,0 +1,121 @@
|
|||
#!/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
|
||||
# Exports variables for use with Pi-hole
|
||||
#
|
||||
# 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.
|
||||
|
||||
# First check if the user running the script is root.
|
||||
# If they are, they have root access and the SUDO variable will be set to nothing
|
||||
if [[ $EUID -eq 0 ]];then
|
||||
echo "You are root."
|
||||
else
|
||||
# sudo will be used during install and to restart services in gravity.sh
|
||||
export SUDO="sudo"
|
||||
fi
|
||||
|
||||
# Find the rows and columns
|
||||
rows=$(tput lines)
|
||||
columns=$(tput cols)
|
||||
|
||||
# Divide by two so the dialogs take up half of the screen, which looks nice.
|
||||
r=$(( rows / 2 ))
|
||||
c=$(( columns / 2 ))
|
||||
|
||||
# Find IP used to route to outside world
|
||||
IPv4dev=$(ip route get 8.8.8.8 | awk '{for(i=1;i<=NF;i++)if($i~/dev/)print $(i+1)}')
|
||||
IPv4addr=$(ip -o -f inet addr show dev $IPv4dev | awk '{print $4}' | awk 'END {print}')
|
||||
IPv4gw=$(ip route get 8.8.8.8 | awk '{print $3}')
|
||||
|
||||
# System files
|
||||
export dnsmsqConfDir=/etc/dnsmasq.d
|
||||
export lighttpConfDir=/etc/lighttpd
|
||||
export cronFolder=/etc/cron.d
|
||||
export dhcpcdFile=/etc/dhcpcd.conf
|
||||
export dnsmasqConfigFile=$dnsmsqConfDir/01-pihole.conf
|
||||
export lighttpdConfigFile=$lighttpConfDir/lighttpd.conf
|
||||
export webRootDir=/var/www/html
|
||||
export webRootPiholeDir=$webRootDir/pihole
|
||||
export webRootAdminDir=$webRootDir/admin
|
||||
export piholeIndexHtmlFile=$webRootPiholeDir/index.html
|
||||
export adminIndexPhpFile=$webRootAdminDir/index.php
|
||||
export logDir=/var/log
|
||||
export webAccessLog=$logDir/lighttpd/access.log
|
||||
export webErrorLog=$logDir/lighttpd/error.log
|
||||
export piholeLog=$logDir/pihole.log
|
||||
|
||||
# Local Pi-hole directory
|
||||
export basename=pihole
|
||||
export piholeDir=/usr/local/etc/$basename
|
||||
export piholeGitDir=/usr/local/etc/.$basename
|
||||
|
||||
# Scripts
|
||||
export scriptDir=/usr/local/bin
|
||||
export gravityScript=$scriptDir/gravity.sh
|
||||
export chronometerScript=$scriptDir/chronometer.sh
|
||||
export piholeLogFlushScript=$scriptDir/piholeLogFlush.sh
|
||||
export blacklistScript=$scriptDir/blacklist.sh
|
||||
export whitelistScript=$scriptDir/whitelist.sh
|
||||
export piholeCron=$cronFolder/pihole
|
||||
|
||||
# Variables for various stages of downloading and formatting the list
|
||||
export tmpLocation=/tmp
|
||||
export adListFile=$piholeDir/adlists.list
|
||||
export adListDefault=$piholeDir/gravity.list
|
||||
export blacklist=$piholeDir/blacklist.txt
|
||||
export whitelist=$piholeDir/whitelist.txt
|
||||
export latentWhitelist=$piholeDir/latentWhitelist.txt
|
||||
export justDomainsExtension=domains
|
||||
export matter=$basename.0.matterandlight.txt
|
||||
export supernova=$basename.1.supernova.txt
|
||||
export eventHorizon=$basename.2.eventHorizon.txt
|
||||
export accretionDisc=$basename.3.accretionDisc.txt
|
||||
export tmpInstallLog=$tmpLocation/pihole-install.log
|
||||
export instalLogLoc=$piholeDir/install.log
|
||||
|
||||
# These files are empty but checked for existence
|
||||
export piholeInterfaceFile=$tmpLocation/.piholeInterface
|
||||
export piholeIPv4static=$tmpLocation/.useIPv4
|
||||
export piholeIPv4file=$piholeDir/.useIPv4
|
||||
export piholeIPv6file=$piholeDir/.useIPv6
|
||||
|
||||
# This is checked during the initial install
|
||||
if [[ -f $piholeIPv4static ]];then
|
||||
# If the tmp file exists, it means it was created from the installation script and we should use that value instead of detecting it in this script
|
||||
# This is because the installer asks to set a static IP address
|
||||
# The file can be removed because once the address is set, it won't change
|
||||
# But then make an invisible file to be contigious with IPv6
|
||||
export piholeIPv4=$(cat $piholeIPv4static)
|
||||
rm -f $piholeIPv4static
|
||||
$SUDO touch $piholeIPv4file
|
||||
else
|
||||
# Otherwise, the IP address can be taken directly from the machine, which will happen when the script is run by the user and not the installation script
|
||||
export IPv4dev=$(ip route get 8.8.8.8 | awk '{for(i=1;i<=NF;i++)if($i~/dev/)print $(i+1)}')
|
||||
export piholeIPv4CIDR=$(ip -o -f inet addr show dev $IPv4dev | awk '{print $4}' | awk 'END {print}')
|
||||
export piholeIPv4=${piholeIPv4CIDR%/*}
|
||||
fi
|
||||
|
||||
if [[ -f $piholeIPv6file ]];then
|
||||
# If the file exists, then the user previously chose to use IPv6 in the automated installer
|
||||
export piholeIPv6=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }')
|
||||
fi
|
||||
|
||||
# This is used in more than one script, so just make it a function so we don't repeat code
|
||||
reloadHostsFile(){
|
||||
dnsmasqPid=$(pidof dnsmasq)
|
||||
|
||||
if [[ $dnsmasqPid ]]; then
|
||||
# The service already running - reload config
|
||||
$SUDO kill -HUP $dnsmasqPid
|
||||
else
|
||||
# The service is not running so start it up
|
||||
$SUDO service dnsmasq start
|
||||
fi
|
||||
}
|
||||
|
||||
echo "Variables have been sourced."
|
Loading…
Reference in a new issue