]> Cypherpunks repositories - gostls13.git/commitdiff
misc/ios: inject the -u device_id option before any other arguments
authorElias Naur <elias.naur@gmail.com>
Tue, 8 May 2018 20:59:35 +0000 (22:59 +0200)
committerElias Naur <elias.naur@gmail.com>
Wed, 9 May 2018 07:16:07 +0000 (07:16 +0000)
The idevicedebugserverproxy command takes a port number without a
flag, like so:

idevicedebugserverproxy 3222

If the -u <device_id> flag is added afterwards, it is ignored and
the command use an arbitrary device. Instead, always inject the -u
flag before any other idevice command arguments.

While here, also kill any leftover idevicedebugserverproxy instance
previous (failed) runs might have left running.

Change-Id: I0bf06ed1a20ef225abeca183f9ba8f396662d435
Reviewed-on: https://go-review.googlesource.com/112216
Run-TryBot: Elias Naur <elias.naur@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
misc/ios/go_darwin_arm_exec.go

index 11219ce5c7978232733e6eabf57df70b737079c3..7c8b7973ada56806f8f3637133da17bb5b49ec3e 100644 (file)
@@ -137,6 +137,9 @@ func runMain() (int, error) {
                return 1, err
        }
 
+       // Kill any hanging debug bridges that might take up port 3222.
+       exec.Command("killall", "idevicedebugserverproxy").Run()
+
        closer, err := startDebugBridge()
        if err != nil {
                return 1, err
@@ -453,7 +456,9 @@ func install(appdir string) error {
 
 func idevCmd(cmd *exec.Cmd) *exec.Cmd {
        if deviceID != "" {
-               cmd.Args = append(cmd.Args, "-u", deviceID)
+               // Inject -u device_id after the executable, but before the arguments.
+               args := []string{cmd.Args[0], "-u", deviceID}
+               cmd.Args = append(args, cmd.Args[1:]...)
        }
        return cmd
 }