#!/bin/sh LINES=$(sed -n '/DeviceName<\/key>/=' preferences.plist) NO=$(wc -l preferences.plist | cut -d ' ' -f 1) LINES="$LINES $NO" PAIR="" STRLINES="" for l in $LINES; do if [ -n "$PAIR" ]; then PAIR="$PAIR,$(( l - 1 ))" STRLINES="$STRLINES $(sed -n "$PAIR {/ip1<\/string>/=}" preferences.plist)" fi PAIR="$l" done STRLINES="$(echo $STRLINES | cut -d ' ' -f 1)" INSERTAT="" for l in $(seq $STRLINES $NO); do INSERTAT=$(sed -n "$l,$l {/<\/dict>/=}" preferences.plist) if [ -n "$INSERTAT" ]; then break fi done if [ -z "$INSERTAT" ]; then echo "No insert position found." 1>&2 exit 1; fi NEXTLINE=`sed -n "$((INSERTAT + 1)),$((INSERTAT + 1)) {/Proxies<\/key>/=}" preferences.plist` if [ -n "$NEXTLINE" ]; then echo "preferences.list already modified." 1>&2 exit 1; fi cp preferences.plist preferences.plist.bak head -n $INSERTAT preferences.plist > /tmp/preferences.plist.head tail -n +$((INSERTAT + 1)) preferences.plist > /tmp/preferences.plist.tail echo " Proxies" > /tmp/preferences.plist.middle echo " " >> /tmp/preferences.plist.middle echo " HTTPEnable" >> /tmp/preferences.plist.middle echo " 1" >> /tmp/preferences.plist.middle echo " HTTPPort" >> /tmp/preferences.plist.middle echo " 8118" >> /tmp/preferences.plist.middle echo " HTTPProxy" >> /tmp/preferences.plist.middle echo " localhost" >> /tmp/preferences.plist.middle echo " HTTPProxyType" >> /tmp/preferences.plist.middle echo " 1" >> /tmp/preferences.plist.middle echo " HTTPSEnable" >> /tmp/preferences.plist.middle echo " 1" >> /tmp/preferences.plist.middle echo " HTTPSPort" >> /tmp/preferences.plist.middle echo " 8118" >> /tmp/preferences.plist.middle echo " HTTPSProxy" >> /tmp/preferences.plist.middle echo " localhost" >> /tmp/preferences.plist.middle echo " ProxyAutoConfigEnable" >> /tmp/preferences.plist.middle echo " 0" >> /tmp/preferences.plist.middle echo " " >> /tmp/preferences.plist.middle cat /tmp/preferences.plist.head /tmp/preferences.plist.middle /tmp/preferences.plist.tail > preferences.plist rm /tmp/preferences.plist.head /tmp/preferences.plist.middle /tmp/preferences.plist.tail