ferano.io/watch.sh

44 lines
971 B
Bash
Executable File

#!/bin/sh
BRAVE_PORT=9222
HTTP_PORT=${1:-3000}
brave-browser --new-window --user-data-dir=/tmp/brave-dev --remote-debugging-port=${BRAVE_PORT} &
BRAVE_PID=$!
echo "Wait 1 seconds, then go..."
sleep 1
TAB_ID=$(curl -s http://localhost:${BRAVE_PORT}/json | jq -r '.[] | .id')
echo "Got Tab ID: $TAB_ID"
JS_NAV=$(cat <<EOF
{"id":1,"method":"Page.navigate","params":{"url":"http://localhost:${HTTP_PORT}"}}
EOF
)
echo $TAB_ID > .tab-id
echo "Open http://localhost:${HTTP_PORT}"
echo $JS_NAV | websocat ws://localhost:${BRAVE_PORT}/devtools/page/${TAB_ID} > /dev/null
python -m http.server $HTTP_PORT --directory build &
PID_HTTP=$!
sleep 1
if ! kill -0 $PID_HTTP 2>/dev/null; then
echo "Failed to start HTTP server"
exit 1
fi
cleanup() {
echo "Shutting down..."
kill $PID_HTTP 2>/dev/null
kill $BRAVE_PID 2>/dev/null
exit 0
}
trap cleanup SIGINT SIGTERM
find src/ resources/ -name "*.clj" -o -name "*.edn" | entr -r make -j3 watch
cleanup