Change summary
script/mitm-proxy.sh | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
Detailed changes
@@ -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