28 lines
935 B
Executable File

#!/usr/bin/env bb
(require '[ :refer [parse-opts]])
(def cli-options
[["-p" "--port PORT" "Port number"
:default 5555
:parse-fn #(Integer/parseInt %)
:validate [#(< 0 % 0x10000) "Must be a number between 0 and 65536"]]])
(def options (:options (parse-opts *command-line-args* cli-options)))
(def port (:port options))
;; using wlan0 for now, as this fixes issues with devices having multiple ip addresses (e.g. when using a vpn)
;; it seems like this interface name is used on all devices that i'm using at least
(def ip (->> (shell/sh "adb" "shell" "ip addr")
(re-find #"inet (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/.* scope global wlan0")
(println (str "determined ip address of device: " ip))
(shell/sh "adb" "tcpip" (str port))
(println (str "opened adb in tcp mode on port: " port))
(def result (shell/sh "adb" "connect" (str ip ":" port)))
(println (:out result))