Add proxy/VPN/telegram launchd and emergency runbooks; reorganize apps docs; document JA3 CrossOver runbook and Wine troubleshooting; add GOG/HoMM game scripts, disk cleanup guides, and gitea push-via-proxy helper. Ignore temp/. Co-authored-by: Cursor <cursoragent@cursor.com>
77 lines
2.1 KiB
Bash
Executable File
77 lines
2.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# Включает/выключает системный «автоматический прокси» (PAC) в macOS через networksetup.
|
|
# По умолчанию: PAC http://localhost:1089/proxy.pac на сервисах Wi-Fi и Thunderbolt Bridge 2.
|
|
#
|
|
# Переменные окружения:
|
|
# MACOS_PAC_URL — URL proxy.pac (по умолчанию http://localhost:1089/proxy.pac)
|
|
# MACOS_PAC_SERVICES — список имён сетевых сервисов через «|» (см. networksetup -listallnetworkservices)
|
|
|
|
usage() {
|
|
printf '%s\n' "Usage: $(basename "$0") on|off|status" >&2
|
|
exit 1
|
|
}
|
|
|
|
[ "$#" -eq 1 ] || usage
|
|
cmd=$1
|
|
|
|
PAC_URL="${MACOS_PAC_URL:-http://localhost:1089/proxy.pac}"
|
|
SERVICES="${MACOS_PAC_SERVICES:-Wi-Fi|Thunderbolt Bridge 2}"
|
|
|
|
svc_exists() {
|
|
networksetup -listallnetworkservices 2>/dev/null | grep -Fqx "$1"
|
|
}
|
|
|
|
case "$cmd" in
|
|
on)
|
|
OLDIFS=$IFS
|
|
IFS='|'
|
|
for svc in $SERVICES; do
|
|
IFS=$OLDIFS
|
|
[ -z "$svc" ] && continue
|
|
if ! svc_exists "$svc"; then
|
|
echo "skip (нет сервиса): $svc" >&2
|
|
continue
|
|
fi
|
|
networksetup -setautoproxyurl "$svc" "$PAC_URL"
|
|
networksetup -setautoproxystate "$svc" on
|
|
echo "PAC on: $svc"
|
|
done
|
|
;;
|
|
off)
|
|
OLDIFS=$IFS
|
|
IFS='|'
|
|
for svc in $SERVICES; do
|
|
IFS=$OLDIFS
|
|
[ -z "$svc" ] && continue
|
|
if ! svc_exists "$svc"; then
|
|
echo "skip (нет сервиса): $svc" >&2
|
|
continue
|
|
fi
|
|
networksetup -setautoproxystate "$svc" off
|
|
echo "PAC off: $svc"
|
|
done
|
|
;;
|
|
status)
|
|
printf '%s\n' "PAC_URL=$PAC_URL"
|
|
printf '%s\n' "SERVICES=$SERVICES"
|
|
printf '%s\n' "---"
|
|
OLDIFS=$IFS
|
|
IFS='|'
|
|
for svc in $SERVICES; do
|
|
IFS=$OLDIFS
|
|
[ -z "$svc" ] && continue
|
|
if svc_exists "$svc"; then
|
|
echo "[$svc]"
|
|
networksetup -getautoproxyurl "$svc"
|
|
else
|
|
echo "[$svc] (нет такого сервиса)"
|
|
fi
|
|
done
|
|
printf '%s\n' "--- scutil --proxy ---"
|
|
scutil --proxy 2>/dev/null || true
|
|
;;
|
|
*)
|
|
usage
|
|
;;
|
|
esac
|