From 30c7cedd2931f2dee25c3bf6f646c6825aa40029 Mon Sep 17 00:00:00 2001 From: Andros Fenollosa Date: Sat, 21 Mar 2020 20:26:10 +0100 Subject: [PATCH] Fixbug OSX old sed --- maza | 51 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/maza b/maza index 628c052..1eb993d 100755 --- a/maza +++ b/maza @@ -4,6 +4,8 @@ set -e # VARIABLES +NAME_OSX="Darwin" +THIS_OS=$(uname -mrs) PROGNAME=$(basename $0) CONFIG=($HOME/.maza/) HOST_FILE=(/etc/hosts) @@ -17,6 +19,25 @@ PROJECT="### https://github.com/tanrax/maza-ad-blocking" AUTHOR="### Created by Andros Fenollosa (https://programadorwebvalencia.com/)" END_TAG="## END MAZA" + +# Create sed cross system +sed() { + if [[ $THIS_OS = *$NAME_OSX* ]]; then + # Check if OSX and install GSED + if [ -x "$(command -v gsed)" ]; then + gsed "$@" + else + echo "${COLOR_RED}ERROR. You must install gsed if you are using OSX${COLOR_RESET}" + exit 1 + fi + else + # Linux + sed "$@" + fi +} +export -f sed + + # FUNCTIONS ## HELP @@ -50,31 +71,31 @@ status() { update() { # Make conf folder - rm -f $CONFIG/$LIST - rm -f $CONFIG/$LIST_DNSMASQ + rm -f $CONFIG$LIST + rm -f $CONFIG$LIST_DNSMASQ mkdir -p $CONFIG # Download DNS list - curl -L -s "https://pgl.yoyo.org/adservers/serverlist.php?showintro=0&mimetype=plaintext" -o "$CONFIG/$LIST" + curl -L -s "https://pgl.yoyo.org/adservers/serverlist.php?showintro=0&mimetype=plaintext" -o "$CONFIG$LIST" # Clear list ## Remove comments - sed -i.bak '/^#/ d' "$CONFIG/$LIST" + sed -i.bak '/^#/ d' "$CONFIG$LIST" # Make dnsmasq format ## 127.0.0.1 doubleclick.net to address=/doubleclick.net/127.0.0.1 - cp "$CONFIG/$LIST" "$CONFIG/$LIST_DNSMASQ" - sed -i.bak 's/127.0.0.1 /address=\//g' "$CONFIG/$LIST_DNSMASQ" - sed -i.bak 's/$/\/127.0.0.1/g' "$CONFIG/$LIST_DNSMASQ" + cp "$CONFIG$LIST" "$CONFIG$LIST_DNSMASQ" + sed -i.bak 's/127.0.0.1 /address=\//g' "$CONFIG$LIST_DNSMASQ" + sed -i.bak 's/$/\/127.0.0.1/g' "$CONFIG$LIST_DNSMASQ" ## Add start tag DNS list in first line - sed -i.bak "1i\\$AUTHOR" "$CONFIG/$LIST" - sed -i.bak "1i\\$PROJECT" "$CONFIG/$LIST" - sed -i.bak "1i\\$START_TAG" "$CONFIG/$LIST" + sed -i.bak "1i\\$AUTHOR" "$CONFIG$LIST" + sed -i.bak "1i\\$PROJECT" "$CONFIG$LIST" + sed -i.bak "1i\\$START_TAG" "$CONFIG$LIST" ## Add end tag DNS list in first line echo $END_TAG >> "$CONFIG/$LIST" ## Add start tag DNS dnsmasq in first line - sed -i.bak "1i\\$AUTHOR" "$CONFIG/$LIST_DNSMASQ" - sed -i.bak "1i\\$PROJECT" "$CONFIG/$LIST_DNSMASQ" - sed -i.bak "1i\\$START_TAG" "$CONFIG/$LIST_DNSMASQ" + sed -i.bak "1i\\$AUTHOR" "$CONFIG$LIST_DNSMASQ" + sed -i.bak "1i\\$PROJECT" "$CONFIG$LIST_DNSMASQ" + sed -i.bak "1i\\$START_TAG" "$CONFIG$LIST_DNSMASQ" ## Add end tag DNS DNSMASQ in first line - echo $END_TAG >> "$CONFIG/$LIST_DNSMASQ" + echo $END_TAG >> "$CONFIG$LIST_DNSMASQ" # Remove temp file rm "$CONFIG$LIST.bak" rm "$CONFIG$LIST_DNSMASQ.bak" @@ -95,7 +116,7 @@ stop() { sudo sed -i -n "/$START_TAG/,/$END_TAG/d" "$HOST_FILE" # Remove DNSMASQ - cat /dev/null > $CONFIG/$LIST_DNSMASQ + cat /dev/null > $CONFIG$LIST_DNSMASQ # Notify user echo "${COLOR_GREEN}DISABLED!${COLOR_RESET}"