From 9d700d75b67fb16f98cf14df4049730120de99c6 Mon Sep 17 00:00:00 2001 From: jacobsalmela Date: Sun, 21 Jun 2015 07:48:14 -0500 Subject: [PATCH 1/3] Update to reflect #20 You can add your own config file to permanently set variables used in the gravity script. If the file exists, gravity.sh will detect it and apply your custom variables. This is useful so when there is an update to the gravity script, you do not need to adjust the variables every time. --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 9a0a9ed6..e7f2f9ba 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,16 @@ On a clean installation of Raspbian, you can run this command to **auto-install ## Gravity The [gravity.sh](https://github.com/jacobsalmela/pi-hole/blob/master/gravity.sh) does most of the magic. The script pulls in ad domains from many sources and compiles them into a single list of [over 900,000 entries](http://jacobsalmela.com/block-millions-ads-network-wide-with-a-raspberry-pi-hole-2-0). +## Custom Config File +If you want to use your own variables for the gravity script (i.e. storing the files in a different location) and don't want to have to change them every time there is an update to the script, create a file called `/etc/pihole/pihole.conf`. In it, you should add your own variables in a similar fashion as shown below: + +``` +origin=/var/run/pihole +adList=/etc/dnsmasq.d/adList +``` + +See [this PR](https://github.com/jacobsalmela/pi-hole/pull/20) for more details. + ## Whitelist and blacklist You can add a `whitelist.txt` or `blacklist.txt` in `/etc/pihole/` and the script will apply those files automatically. From 6953c02402919e05460e080664ee5c76d284b110 Mon Sep 17 00:00:00 2001 From: jacobsalmela Date: Sun, 21 Jun 2015 07:50:02 -0500 Subject: [PATCH 2/3] detect original pihole and backup Detects if the Pi had an original Pi-hole by looking for adList.conf. If it exists, it backs up all the files to /etc/pihole/original. Then, the script continues as normal and creates the new files. This helps ensure that /etc/hosts and /etc/dnsmasq.d/adList.conf are not being used simultaneously. --- automated install/basic-install.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 43f9d663..87f48ce6 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -24,6 +24,19 @@ echo " Press Enter when ready " echo " " read +if [[ -f /etc/dnsmasq.d/adList.conf ]];then + echo "Original Pi-hole detected. Initiating sub space transport..." + sudo mkdir -p /etc/pihole/original/ + mv /etc/dnsmasq.d/adList.conf /etc/pihole/original/adList.conf.$(date "+%Y-%m-%d") + mv /etc/dnsmasq.conf /etc/pihole/original/dnsmasq.conf.$(date "+%Y-%m-%d") + mv /etc/resolv.conf /etc/pihole/original/resolv.conf.$(date "+%Y-%m-%d") + mv /etc/lighttpd/lighttpd.conf /etc/pihole/original/lighttpd.conf.$(date "+%Y-%m-%d") + mv /var/www/pihole/index.html /etc/pihole/original/index.html.$(date "+%Y-%m-%d") + mv /usr/local/bin/gravity.sh /etc/pihole/original/gravity.sh.$(date "+%Y-%m-%d") +else + : +fi + echo "Updating the Pi..." sudo apt-get update sudo apt-get -y upgrade From 5c4bfb84b0fed95b92f5311ace01dc2dfe23a519 Mon Sep 17 00:00:00 2001 From: jacobsalmela Date: Mon, 13 Jul 2015 06:59:22 -0500 Subject: [PATCH 3/3] uses a variable for hostname instead of raspberrypi Some people use a hostname other than raspberrypi, so their hostname did not resolve to 127.0.0.1. I replaced that hardcoded value with a variable so that does not happen. I also added a few comments and minor formatting adjustments,. --- gravity.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gravity.sh b/gravity.sh index 4734991a..fd0e7cbe 100755 --- a/gravity.sh +++ b/gravity.sh @@ -19,10 +19,9 @@ sources=('https://adaway.org/hosts.txt' adList=/etc/hosts origin=/etc/pihole piholeDir=/etc/pihole -if [[ -f $piholeDir/pihole.conf ]]; then +if [[ -f $piholeDir/pihole.conf ]];then . $piholeDir/pihole.conf fi - justDomainsExtension=domains matter=pihole.0.matter.txt andLight=pihole.1.andLight.txt @@ -55,7 +54,7 @@ do saveLocation=$origin/"list"."$i"."$domain" # Use a case statement to download lists that need special cURL commands to complete properly - case "$domain" in + case "$domain" in "adblock.mahakala.is") data=$(curl -s -A 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' -e http://forum.xda-developers.com/ -z $saveLocation."$justDomainsExtension" "${sources[$i]}");; "pgl.yoyo.org") data=$(curl -s -d mimetype=plaintext -d hostformat=hosts -z $saveLocation."$justDomainsExtension" "${sources[$i]}");; @@ -75,7 +74,7 @@ do fi done -# Find all files with the .domains extension and compile them into one file +# Find all files with the .domains extension and compile them into one file and remove CRs echo "** Aggregating list of domains..." find $origin/ -type f -name "*.$justDomainsExtension" -exec cat {} \; | tr -d '\r' > $origin/$matter @@ -106,7 +105,7 @@ function gravity_advanced() echo "::1 localhost" | cat - $origin/$accretionDisc > $origin/latent.$accretionDisc && mv $origin/latent.$accretionDisc $origin/$accretionDisc echo "255.255.255.255 broadcasthost" | cat - $origin/$accretionDisc > $origin/latent.$accretionDisc && mv $origin/latent.$accretionDisc $origin/$accretionDisc echo "127.0.0.1 localhost" | cat - $origin/$accretionDisc > $origin/latent.$accretionDisc && mv $origin/latent.$accretionDisc $origin/$accretionDisc - echo "127.0.0.1 raspberrypi" | cat - $origin/$accretionDisc > $origin/latent.$accretionDisc && mv $origin/latent.$accretionDisc $origin/$accretionDisc + echo "127.0.0.1 $(hostname)" | cat - $origin/$accretionDisc > $origin/latent.$accretionDisc && mv $origin/latent.$accretionDisc $origin/$accretionDisc # Copy the file so dnsmasq can use it sudo cp $origin/$accretionDisc $adList }