# Maintainer: max.bra pkgname=pi-hole-standalone _pkgname=pi-hole pkgver=3.1.4 pkgrel=4 pkgdesc='The Pi-hole is an advertising-aware DNS/Web server. Arch alteration for standalone PC.' arch=('any') license=('EUPL-1.1') url="https://github.com/pi-hole/pi-hole" depends=('dnsmasq' 'net-tools') conflicts=('pi-hole-server') install=$pkgname.install backup=('etc/pihole/whitelist.txt' 'etc/pihole/blacklist.txt' 'etc/dnsmasq.d/01-pihole.conf') source=(https://github.com/$_pkgname/$_pkgname/archive/v$pkgver.tar.gz dnsmasq.main dnsmasq.include $_pkgname-gravity.service $_pkgname-gravity.timer mimic_setupVars.conf.sh) md5sums=('e231722332116b7ffab316d5c66a828e' 'b955136ef15be29a468e8d9f85f24b8c' '0bab89977a2d4357ec8befb4ff85ee3d' '047f13d4ac97877f724f87b002aaee63' 'd42a864f88299998f8233c0bc0dd093d' 'd01db2332f2d1039dbecf91b69f93dc9') prepare() { _ssc="/tmp/sedcontrol" # setting up and securing pihole wrapper script sed -n "/debugFunc() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 1" && return 1 ; fi sed -i '/debugFunc() {/,+16d' "$srcdir"/$_pkgname-$pkgver/pihole sed -n "/flushFunc() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 2" && return 1 ; fi sed -i '/flushFunc() {/,+4d' "$srcdir"/$_pkgname-$pkgver/pihole sed -n "/versionFunc() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 3" && return 1 ; fi sed -i '/versionFunc() {/,+4d' "$srcdir"/$_pkgname-$pkgver/pihole sed -n "/updatePiholeFunc() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 4" && return 1 ; fi sed -i '/updatePiholeFunc() {/,+4d' "$srcdir"/$_pkgname-$pkgver/pihole sed -n "/reconfigurePiholeFunc() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 5" && return 1 ; fi sed -i '/reconfigurePiholeFunc() {/,+4d' "$srcdir"/$_pkgname-$pkgver/pihole sed -n "/chronometerFunc() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 6" && return 1 ; fi sed -i '/chronometerFunc() {/,+4d' "$srcdir"/$_pkgname-$pkgver/pihole sed -n "/uninstallFunc() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 7" && return 1 ; fi sed -i '/uninstallFunc() {/,+4d' "$srcdir"/$_pkgname-$pkgver/pihole sed -n "/piholeCheckoutFunc() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 8" && return 1 ; fi sed -i '/piholeCheckoutFunc() {/,+20d' "$srcdir"/$_pkgname-$pkgver/pihole sed -n "/tricorderFunc() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 9" && return 1 ; fi sed -i '/tricorderFunc() {/,+29d' "$srcdir"/$_pkgname-$pkgver/pihole sed -n "/\"\-[d,r,up]/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 10" && return 1 ; fi sed -i '/\"\-[d,r,up]/d' "$srcdir"/$_pkgname-$pkgver/pihole sed -n "/uninstall/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 11" && return 1 ; fi sed -i '/uninstall/d' "$srcdir"/$_pkgname-$pkgver/pihole sed -i "s|^ checkout.*$|\";|w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 12" && return 1 ; fi sed -n "/checkout/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 13" && return 1 ; fi sed -i '/checkout/d' "$srcdir"/$_pkgname-$pkgver/pihole sed -n "/tricorder/w $_ssc" "$srcdir"/$_pkgname-$pkgver/pihole if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing pihole wrapper script 10" && return 1 ; fi sed -i '/tricorder/d' "$srcdir"/$_pkgname-$pkgver/pihole # ----------------- # setup gravity.sh sed -n "/#ensure \/etc\/dnsmasq\.d\//w $_ssc" "$srcdir"/$_pkgname-$pkgver/gravity.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setup gravity.sh 1" && return 1 ; fi sed -i '/#ensure \/etc\/dnsmasq\.d\//,+5d' "$srcdir"/$_pkgname-$pkgver/gravity.sh # sed -n "/#Overwrite /w $_ssc" "$srcdir"/$_pkgname-$pkgver/gravity.sh # if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setup gravity.sh 2" && return 1 ; fi # sed -i '/#Overwrite /,+1d' "$srcdir"/$_pkgname-$pkgver/gravity.sh sed -i "s|/usr/local/bin/pihole|/usr/bin/pihole|w $_ssc" "$srcdir"/$_pkgname-$pkgver/gravity.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setup gravity.sh 2" && return 1 ; fi sed -i "s|/etc/.pihole|/etc/pihole|w $_ssc" "$srcdir"/$_pkgname-$pkgver/gravity.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setup gravity.sh 3" && return 1 ; fi # ----------------- # setting up and securing webpage.sh script sed -n "/SetWebPassword() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 1" && return 1 ; fi sed -i '/SetWebPassword() {/,+40d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/SetTemperatureUnit() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 2" && return 1 ; fi sed -i '/SetTemperatureUnit() {/,+3d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/SetExcludeDomains() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 3" && return 1 ; fi sed -i '/SetExcludeDomains() {/,+3d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/SetExcludeClients() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 4" && return 1 ; fi sed -i '/SetExcludeClients() {/,+3d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/EnableDHCP() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 5" && return 1 ; fi sed -i '/EnableDHCP() {/,+17d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/DisableDHCP() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 6" && return 1 ; fi sed -i '/DisableDHCP() {/,+11d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/SetWebUILayout() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 7" && return 1 ; fi sed -i '/SetWebUILayout() {/,+3d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/SetPrivacyMode() {/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 8" && return 1 ; fi sed -i '/SetPrivacyMode() {/,+7d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/\"\-[p,c,f,k]/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 9" && return 1 ; fi sed -i '/\"\-[p,c,f,k]/d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/\"setexcludedomains/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 10" && return 1 ; fi sed -i '/\"setexcludedomains/d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/\"setexcludeclients/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 11" && return 1 ; fi sed -i '/\"setexcludeclients/d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/\"enabledhcp/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 12" && return 1 ; fi sed -i '/\"enabledhcp/d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/\"disabledhcp/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 13" && return 1 ; fi sed -i '/\"disabledhcp/d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/\"layout/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 14" && return 1 ; fi sed -i '/\"layout/d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh sed -n "/\"privacymode/w $_ssc" "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh if [ -s $_ssc ] ; then rm $_ssc ; else echo " ==> Sed error: setting up and securing webpage.sh script 15" && return 1 ; fi sed -i '/\"privacymode/d' "$srcdir"/$_pkgname-$pkgver/advanced/Scripts/webpage.sh } package() { cd "$srcdir" install -Dm755 $_pkgname-$pkgver/pihole "$pkgdir"/usr/bin/pihole install -dm755 "$pkgdir"/opt/pihole install -Dm755 $_pkgname-$pkgver/gravity.sh "$pkgdir"/opt/pihole/gravity.sh install -Dm755 $_pkgname-$pkgver/advanced/Scripts/list.sh "$pkgdir"/opt/pihole/list.sh install -Dm755 $_pkgname-$pkgver/advanced/Scripts/webpage.sh "$pkgdir"/opt/pihole/webpage.sh install -Dm755 mimic_setupVars.conf.sh "$pkgdir"/opt/pihole/mimic_setupVars.conf.sh install -dm755 "$pkgdir/usr/lib/systemd/system/multi-user.target.wants" install -Dm644 "$_pkgname-gravity.timer" "$pkgdir/usr/lib/systemd/system/$_pkgname-gravity.timer" install -Dm644 "$_pkgname-gravity.service" $pkgdir/usr/lib/systemd/system/$_pkgname-gravity.service ln -s ../$_pkgname-gravity.timer "$pkgdir/usr/lib/systemd/system/multi-user.target.wants/$_pkgname-gravity.timer" install -dm755 "$pkgdir"/etc/pihole install -dm755 "$pkgdir"/usr/share/pihole/configs install -Dm644 $_pkgname-$pkgver/adlists.default "$pkgdir"/etc/pihole/adlists.default install -Dm644 /dev/null "$pkgdir"/etc/pihole/whitelist.txt install -Dm644 /dev/null "$pkgdir"/etc/pihole/blacklist.txt install -Dm644 dnsmasq.main "$pkgdir"/usr/share/pihole/configs/dnsmasq.example.conf install -Dm644 dnsmasq.include "$pkgdir"/etc/dnsmasq.d/01-pihole.conf install -dm755 "$pkgdir"/usr/share/licenses/pihole install -Dm644 ${pkgname%-*}-$pkgver/LICENSE "$pkgdir"/usr/share/licenses/pihole/Pi-hole }