Improve script/mitm-proxy.sh to support podman (#25834)

Peter Tripp created

Change summary

script/mitm-proxy.sh | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)

Detailed changes

script/mitm-proxy.sh 🔗

@@ -1,10 +1,22 @@
 #!/usr/bin/env bash
 
-set -e
+set -euo pipefail
 
-CONTAINER_ID=$(docker run -d --rm -it -v ~/.mitmproxy:/home/mitmproxy/.mitmproxy -p 9876:8080 mitmproxy/mitmproxy mitmdump)
+if command -v docker >/dev/null 2>&1; then
+    ENGINE="docker"
+elif command -v podman >/dev/null 2>&1; then
+    ENGINE="podman"
+else
+    echo "Neither Docker nor Podman found. Please install one of them."
+    exit 1
+fi
+if [ ! -d ~/.mitmproxy ]; then
+    mkdir -p ~/.mitmproxy
+fi
 
-trap 'docker stop '"$CONTAINER_ID"' 1> /dev/null || true; exit 1' SIGINT
+CONTAINER_ID="$(${ENGINE} run -d --rm -it -v ~/.mitmproxy:/home/mitmproxy/.mitmproxy -p 9876:8080 mitmproxy/mitmproxy mitmdump)"
+
+trap "${ENGINE} stop \"$CONTAINER_ID\" 1> /dev/null || true; exit 1" SIGINT
 
 echo "Add the root certificate created in ~/.mitmproxy to your certificate chain for HTTP"
 echo "on macOS:"
@@ -15,4 +27,4 @@ read
 http_proxy=http://localhost:9876 cargo run
 
 # Clean up detached proxy after running
-docker stop "$CONTAINER_ID" 2>/dev/null || true
+${ENGINE} stop "${CONTAINER_ID}" 2>/dev/null || true