mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01:00
mach {package,install} --android: add --emulator and --usb
This commit is contained in:
parent
fe24816d12
commit
4cbf3dea05
2 changed files with 32 additions and 4 deletions
|
@ -389,10 +389,16 @@ class PackageCommands(CommandBase):
|
||||||
@CommandArgument('--android',
|
@CommandArgument('--android',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help='Install on Android')
|
help='Install on Android')
|
||||||
|
@CommandArgument('--emulator',
|
||||||
|
action='store_true',
|
||||||
|
help='For Android, intall to the only emulated device')
|
||||||
|
@CommandArgument('--usb',
|
||||||
|
action='store_true',
|
||||||
|
help='For Android, intall to the only USB device')
|
||||||
@CommandArgument('--target', '-t',
|
@CommandArgument('--target', '-t',
|
||||||
default=None,
|
default=None,
|
||||||
help='Install the given target platform')
|
help='Install the given target platform')
|
||||||
def install(self, release=False, dev=False, android=False, target=None):
|
def install(self, release=False, dev=False, android=False, emulator=False, usb=False, target=None):
|
||||||
env = self.build_env()
|
env = self.build_env()
|
||||||
if target and android:
|
if target and android:
|
||||||
print("Please specify either --target or --android.")
|
print("Please specify either --target or --android.")
|
||||||
|
@ -416,7 +422,15 @@ class PackageCommands(CommandBase):
|
||||||
|
|
||||||
if android:
|
if android:
|
||||||
pkg_path = binary_path + ".apk"
|
pkg_path = binary_path + ".apk"
|
||||||
exec_command = [self.android_adb_path(env), "install", "-r", pkg_path]
|
exec_command = [self.android_adb_path(env)]
|
||||||
|
if emulator and usb:
|
||||||
|
print("Cannot install to both emulator and USB at the same time.")
|
||||||
|
return 1
|
||||||
|
if emulator:
|
||||||
|
exec_command += ["-e"]
|
||||||
|
if usb:
|
||||||
|
exec_command += ["-d"]
|
||||||
|
exec_command += ["install", "-r", pkg_path]
|
||||||
elif is_windows():
|
elif is_windows():
|
||||||
pkg_path = path.join(path.dirname(binary_path), 'msi', 'Servo.msi')
|
pkg_path = path.join(path.dirname(binary_path), 'msi', 'Servo.msi')
|
||||||
exec_command = ["msiexec", "/i", pkg_path]
|
exec_command = ["msiexec", "/i", pkg_path]
|
||||||
|
|
|
@ -45,6 +45,12 @@ class PostBuildCommands(CommandBase):
|
||||||
help='Run the dev build')
|
help='Run the dev build')
|
||||||
@CommandArgument('--android', action='store_true', default=None,
|
@CommandArgument('--android', action='store_true', default=None,
|
||||||
help='Run on an Android device through `adb shell`')
|
help='Run on an Android device through `adb shell`')
|
||||||
|
@CommandArgument('--emulator',
|
||||||
|
action='store_true',
|
||||||
|
help='For Android, intall to the only emulated device')
|
||||||
|
@CommandArgument('--usb',
|
||||||
|
action='store_true',
|
||||||
|
help='For Android, intall to the only USB device')
|
||||||
@CommandArgument('--debug', action='store_true',
|
@CommandArgument('--debug', action='store_true',
|
||||||
help='Enable the debugger. Not specifying a '
|
help='Enable the debugger. Not specifying a '
|
||||||
'--debugger option will result in the default '
|
'--debugger option will result in the default '
|
||||||
|
@ -64,7 +70,7 @@ class PostBuildCommands(CommandBase):
|
||||||
'params', nargs='...',
|
'params', nargs='...',
|
||||||
help="Command-line arguments to be passed through to Servo")
|
help="Command-line arguments to be passed through to Servo")
|
||||||
def run(self, params, release=False, dev=False, android=None, debug=False, debugger=None,
|
def run(self, params, release=False, dev=False, android=None, debug=False, debugger=None,
|
||||||
headless=False, software=False, bin=None, nightly=None):
|
headless=False, software=False, bin=None, emulator=False, usb=False, nightly=None):
|
||||||
env = self.build_env()
|
env = self.build_env()
|
||||||
env["RUST_BACKTRACE"] = "1"
|
env["RUST_BACKTRACE"] = "1"
|
||||||
|
|
||||||
|
@ -95,7 +101,15 @@ class PostBuildCommands(CommandBase):
|
||||||
"echo Servo PID: $(pidof com.mozilla.servo)",
|
"echo Servo PID: $(pidof com.mozilla.servo)",
|
||||||
"exit"
|
"exit"
|
||||||
]
|
]
|
||||||
shell = subprocess.Popen([self.android_adb_path(env), "shell"], stdin=subprocess.PIPE)
|
args = [self.android_adb_path(env)]
|
||||||
|
if emulator and usb:
|
||||||
|
print("Cannot install to both emulator and USB at the same time.")
|
||||||
|
return 1
|
||||||
|
if emulator:
|
||||||
|
args += ["-e"]
|
||||||
|
if usb:
|
||||||
|
args += ["-d"]
|
||||||
|
shell = subprocess.Popen(args + ["shell"], stdin=subprocess.PIPE)
|
||||||
shell.communicate("\n".join(script) + "\n")
|
shell.communicate("\n".join(script) + "\n")
|
||||||
return shell.wait()
|
return shell.wait()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue