2020-01-03 08:16:42 +01:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
# START
|
|
|
|
set -e
|
|
|
|
|
2020-01-03 10:17:00 +01:00
|
|
|
# VARIABLES
|
2020-01-03 08:16:42 +01:00
|
|
|
PROGNAME=$(basename $0)
|
2020-01-03 08:18:40 +01:00
|
|
|
CONFIG=($HOME/.maza/)
|
2020-01-03 10:17:00 +01:00
|
|
|
HOST_FILE=(/etc/hosts)
|
|
|
|
COLOR_RED=`tput setaf 1`
|
|
|
|
COLOR_GREEN=`tput setaf 2`
|
|
|
|
COLOR_RESET=`tput sgr0`
|
2020-01-03 08:16:42 +01:00
|
|
|
LIST="list"
|
2020-01-03 09:50:01 +01:00
|
|
|
START_TAG="## MAZA - List ad blocking"
|
|
|
|
END_TAG="## END MAZA"
|
2020-01-03 08:16:42 +01:00
|
|
|
|
|
|
|
# FUNCTIONS
|
|
|
|
|
|
|
|
## HELP
|
|
|
|
usage() {
|
|
|
|
if [ "$*" != "" ] ; then
|
|
|
|
echo "Error: $*"
|
|
|
|
fi
|
|
|
|
|
|
|
|
cat << EOF
|
|
|
|
Usage: $PROGNAME [OPTION]
|
|
|
|
Simple and efficient local ad blocking throughout the network.
|
|
|
|
|
|
|
|
Options:
|
2020-01-03 10:17:00 +01:00
|
|
|
status Check if it's active or not
|
2020-01-03 08:16:42 +01:00
|
|
|
update Update the list of DNS to be blocked
|
|
|
|
start Activate blocking DNS.
|
|
|
|
stop Stop blocking DNS.
|
|
|
|
--help Display this usage message and exit
|
|
|
|
EOF
|
|
|
|
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
2020-01-03 10:17:00 +01:00
|
|
|
status() {
|
|
|
|
if grep -qF "$START_TAG" "$HOST_FILE";then
|
|
|
|
echo "${COLOR_GREEN}ENABLED${COLOR_RESET}"
|
|
|
|
else
|
|
|
|
echo "${COLOR_RED}DISABLED${COLOR_RESET}"
|
|
|
|
fi
|
|
|
|
}
|
2020-01-03 08:16:42 +01:00
|
|
|
|
|
|
|
update() {
|
2020-01-03 08:22:28 +01:00
|
|
|
# Make conf folder
|
2020-01-03 08:16:42 +01:00
|
|
|
rm -f $CONFIG/$LIST
|
|
|
|
mkdir -p $CONFIG
|
2020-01-03 08:22:28 +01:00
|
|
|
# Download DNS list
|
2020-01-03 08:16:42 +01:00
|
|
|
curl -L -s "https://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts" -o "$CONFIG/$LIST"
|
2020-01-03 08:22:28 +01:00
|
|
|
# Clear list
|
2020-01-03 09:50:01 +01:00
|
|
|
## Get PRE tag
|
|
|
|
sed -i .bak -n "/<pre>/,/<\/pre>/p" "$CONFIG/$LIST"
|
|
|
|
## Remove first line
|
|
|
|
sed -i .bak '1d' "$CONFIG/$LIST"
|
|
|
|
## Remove last line
|
|
|
|
sed -i .bak '$ d' "$CONFIG/$LIST"
|
|
|
|
## Add start tag DNS list in first line
|
|
|
|
sed -i .bak "1i\\
|
|
|
|
$START_TAG
|
|
|
|
" "$CONFIG/$LIST"
|
|
|
|
## Add end tag DNS list in first line
|
|
|
|
echo $END_TAG >> "$CONFIG/$LIST"
|
|
|
|
# Notify user
|
2020-01-03 10:17:00 +01:00
|
|
|
echo "${COLOR_GREEN}Done!${COLOR_RESET}"
|
|
|
|
}
|
|
|
|
|
|
|
|
start() {
|
|
|
|
cat "$CONFIG/$LIST" "$HOST_FILE" >> "$HOST_FILE"
|
|
|
|
# Notify user
|
|
|
|
echo "${COLOR_GREEN}ENABLED!${COLOR_RESET}"
|
|
|
|
}
|
|
|
|
|
|
|
|
stop() {
|
|
|
|
echo "stopdf"
|
2020-01-03 08:16:42 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
# CONTROLE ARGUMENTS
|
|
|
|
isArg=""
|
|
|
|
|
|
|
|
while [ $# -gt 0 ] ; do
|
|
|
|
case "$1" in
|
|
|
|
--help)
|
|
|
|
usage
|
|
|
|
;;
|
2020-01-03 10:17:00 +01:00
|
|
|
status)
|
|
|
|
isArg="1"
|
|
|
|
status
|
|
|
|
;;
|
2020-01-03 08:16:42 +01:00
|
|
|
update)
|
|
|
|
isArg="1"
|
|
|
|
update
|
|
|
|
;;
|
|
|
|
start)
|
|
|
|
isArg="1"
|
2020-01-03 10:17:00 +01:00
|
|
|
start
|
2020-01-03 08:16:42 +01:00
|
|
|
;;
|
|
|
|
stop)
|
|
|
|
isArg="1"
|
2020-01-03 10:17:00 +01:00
|
|
|
stop
|
2020-01-03 08:16:42 +01:00
|
|
|
;;
|
|
|
|
*)
|
|
|
|
esac
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
|
|
|
if [ -z $isArg ] ; then
|
|
|
|
usage "Not enough arguments"
|
|
|
|
fi
|