diff --git a/zsh/devicectl.sh b/zsh/devicectl.sh new file mode 100644 index 0000000..d2e5f7e --- /dev/null +++ b/zsh/devicectl.sh @@ -0,0 +1,60 @@ +# Add to your zsh profile + +function devicepid() { + if [ -z "$1" ]; then + echo "Usage: devicepid " + echo "Example: devicepid 'iPhone 15 Pro Max' SpringBoard" + return 1 + fi + + if [ -z "$2" ]; then + echo "Usage: devicepid " + echo "Example: devicepid 'iPhone 15 Pro Max' SpringBoard" + return 1 + fi + + xcrun devicectl device info processes --device "$1" | grep "$2" | awk '{ print $1; }' +} + +func devicekill() { + if [ -z "$1" ]; then + echo "Usage: devicekill " + echo "Example: devicekill 'iPhone 15 Pro Max' SpringBoard" + return 1 + fi + + if [ -z "$2" ]; then + echo "Usage: devicekill " + echo "Example: devicekill 'iPhone 15 Pro Max' SpringBoard" + return 1 + fi + + TARGETPID=$(devicepid "$1" "$2") + + if [ $? -ne 0 ]; then + echo "Couldn't find PID for $2" + return 1 + fi + + echo "Found PID for $2: $TARGETPID" + + xcrun devicectl device process signal --pid $TARGETPID --signal SIGHUP --device "$1" +} + +func respring() { + if [ -z "$1" ]; then + echo "Usage: respring " + return 1 + fi + + devicekill "$1" "SpringBoard" +} + +func devicereboot() { + if [ -z "$1" ]; then + echo "Usage: devicereboot " + return 1 + fi + + xcrun devicectl device reboot --device "$1" +} diff --git a/zshrc b/zshrc index e11597b..536178a 100755 --- a/zshrc +++ b/zshrc @@ -313,3 +313,10 @@ fi autoload -Uz compinit compinit + +### devicectl +# ========== +# Gui Rambo's iOS device control functions +# https://gist.github.com/insidegui/b570ec998b9e2aeb730f4e142f0593d1 + +source $ZDOTDIR/devicectl.sh