misc/ios: inject the -u device_id option before any other arguments

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>
This commit is contained in:
Elias Naur 2018-05-08 22:59:35 +02:00
parent 337cc29156
commit 66cb80c266

View 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
}