Created
November 21, 2021 20:23
-
-
Save macmule/75d148aa433706256ff490da96859e6e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/sh | |
| #################################################################################################### | |
| # | |
| # License: https://macmule.com/license/ | |
| # | |
| #################################################################################################### | |
| # HARDCODED VALUES ARE SET HERE | |
| autoProxyURL="" | |
| # CHECK TO SEE IF A VALUE WAS PASSED FOR $4, AND IF SO, ASSIGN IT | |
| if [ "$4" != "" ] && [ "$autoProxyURL" == "" ]; | |
| then | |
| autoProxyURL=$4 | |
| fi | |
| # Detects all network hardware & creates services for all installed network hardware | |
| /usr/sbin/networksetup -detectnewhardware | |
| IFS=$'\n' | |
| #Loops through the list of network services | |
| for i in $(/usr/sbin/networksetup -listallnetworkservices | tail +2 ); | |
| do | |
| # Get a list of all services beginning 'Ether' 'Air' or 'VPN' or 'Wi-Fi' | |
| # If your service names are different to the below, you'll need to change the criteria | |
| if [[ "$i" =~ 'Ether' ]] || [[ "$i" =~ 'Air' ]] || [[ "$i" =~ 'VPN' ]] || [[ "$i" =~ 'Wi-Fi' ]] ; then | |
| autoProxyURLLocal=`/usr/sbin/networksetup -getautoproxyurl "$i" | head -1 | cut -c 6-` | |
| # Echo's the name of any matching services & the autoproxyURL's set | |
| echo "$i Proxy set to $autoProxyURLLocal" | |
| # If the value returned of $autoProxyURLLocal does not match the value of $autoProxyURL for the interface $i, change it. | |
| if [[ $autoProxyURLLocal != $autoProxyURL ]]; | |
| then | |
| /usr/sbin/networksetup -setautoproxyurl $i $autoProxyURL | |
| echo "Set auto proxy for $i to $autoProxyURL" | |
| fi | |
| fi | |
| # Enable auto proxy once set | |
| /usr/sbin/networksetup -setautoproxystate "$i" on | |
| echo "Turned on auto proxy for $i" | |
| done | |
| unset IFS | |
| # Echo that we're done | |
| echo "Auto proxy present, correct & enabled for all targeted interfaces" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment