···
programs.zsh.initContent = ''
eval "$(/usr/libexec/path_helper)"
+
# MITM proxy management functions
+
MITM_SERVICE="Wi-Fi" # Change to "Ethernet" if needed
+
MITM_CERT="$HOME/.mitmproxy/mitmproxy-ca-cert.pem"
+
# Generate mitmproxy CA certificate if it doesn't exist
+
if [ ! -f "$MITM_CERT" ]; then
+
echo "Generating mitmproxy CA certificate..."
+
(timeout 0.1 mitmproxy --set confdir="$HOME/.mitmproxy" 2>/dev/null; true)
+
networksetup -setwebproxy "$MITM_SERVICE" localhost 8080 &&
+
networksetup -setsecurewebproxy "$MITM_SERVICE" localhost 8080 &&
+
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "$MITM_CERT" &&
+
echo "mitmproxy enabled and cert added"
+
networksetup -setwebproxystate "$MITM_SERVICE" off &&
+
networksetup -setsecurewebproxystate "$MITM_SERVICE" off &&
+
sudo security delete-certificate -c mitmproxy /Library/Keychains/System.keychain &&
+
echo "mitmproxy disabled and cert removed"
+
NC='\033[0m' # No Color
+
echo "========== Proxy Status =========="
+
for proto in webproxy securewebproxy; do
+
proxy_status=$(networksetup -get''${proto} "$MITM_SERVICE")
+
enabled=$(echo "$proxy_status" | grep "Enabled: Yes")
+
PROTO_UPPER=$(echo "$proto" | tr '[:lower:]' '[:upper:]')
+
if [ -n "$enabled" ]; then
+
echo -e "''${PROTO_UPPER} : ''${GREEN}ENABLED''${NC}"
+
echo -e "''${PROTO_UPPER} : ''${RED}DISABLED''${NC}"
+
echo "$proxy_status" | grep -E "Server:|Port:"
+
echo "========== mitmproxy Certificate =========="
+
if security find-certificate -c mitmproxy /Library/Keychains/System.keychain > /dev/null 2>&1; then
+
echo -e "mitmproxy certificate: ''${GREEN}PRESENT''${NC}"
+
echo -e "mitmproxy certificate: ''${RED}NOT PRESENT''${NC}"
+
echo "========== mitmproxy Process =========="
+
if pgrep -f mitmproxy > /dev/null; then
+
echo -e "mitmproxy process: ''${GREEN}RUNNING''${NC}"
+
echo -e "mitmproxy process: ''${RED}NOT RUNNING''${NC}"
+
echo "==========================================="
# Let Home Manager install and manage itself