summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAAGaming <aagaming@riseup.net>2024-05-04 22:38:40 -0400
committerAAGaming <aagaming@riseup.net>2024-05-04 22:38:40 -0400
commit2a22f000c12bd3704a93e897ed71e644392baeef (patch)
treebb27fa9d0b22233824be1214e9d2cfa0734a1dd9 /scripts
parent63f90d884e32b0ab4f6e0b97239d6725a5cd3413 (diff)
downloaddecky-loader-2a22f000c12bd3704a93e897ed71e644392baeef.tar.gz
decky-loader-2a22f000c12bd3704a93e897ed71e644392baeef.zip
add deckdebug.sh utility
Diffstat (limited to 'scripts')
-rw-r--r--scripts/deckdebug.sh44
1 files changed, 44 insertions, 0 deletions
diff --git a/scripts/deckdebug.sh b/scripts/deckdebug.sh
new file mode 100644
index 00000000..56f4c5b9
--- /dev/null
+++ b/scripts/deckdebug.sh
@@ -0,0 +1,44 @@
+#! /usr/bin/env bash
+# Usage: deckdebug.sh DECKIP:8081
+# Dependencies: websocat jq curl chromium
+
+# https://jackson.dev/post/a-portable-nix-shell-shebang/
+if [ -z "$INSIDE_NIX_RANDOMSTRING" ] && command -v nix &> /dev/null; then
+ # If the user has nix, relaunch in nix shell with dependencies added
+ INSIDE_NIX_RANDOMSTRING=1 nix shell \
+ nixpkgs#websocat \
+ nixpkgs#jq \
+ nixpkgs#curl \
+ --command "$0" "$@"
+ exit $?
+fi
+
+chromium --remote-debugging-port=9222 &
+sleep 2
+
+ADDR=$1
+
+LOCAL=localhost:9222
+LOCALTARGETS=$(curl -s http://$LOCAL/json/list)
+LOCALTARGET=$(jq -r '.[] | select(.title=="New Tab") | .id' <<< "$LOCALTARGETS")
+echo startup tab $LOCALTARGET
+
+TARGET=0
+while :; do
+ NEWTARGET=$(curl -s http://$ADDR/json/list | jq -r '.[] | select(.title=="SharedJSContext") | .id')
+
+ if [[ $NEWTARGET != "" ]] && [[ $NEWTARGET != $TARGET ]]; then
+ echo found new tab at $NEWTARGET
+ TARGET=$NEWTARGET
+ TARGETURL="devtools://devtools/bundled/inspector.html?remoteFrontend=true&ws=$ADDR/devtools/page/$TARGET"
+
+ LOCALTARGET=$(echo '{"id": 1, "method": "Target.createTarget", "params": {"background": true, "url": "'$TARGETURL'"}}
+{"id": 2, "method": "Target.closeTarget", "params": {"targetId": "'$LOCALTARGET'"}}' \
+ | websocat ws://$LOCAL/devtools/page/$LOCALTARGET \
+ | jq -r '.result.targetId')
+
+ echo started devtools at $LOCALTARGET
+ fi
+
+ sleep 5
+done \ No newline at end of file