summaryrefslogtreecommitdiffstats
path: root/js/xpconnect/mach_commands.py
blob: 514bfcff6921385d22af5a72ce3f679643e5554b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

import argparse
import sys
from pathlib import Path

from mach.decorators import Command, CommandArgument


@Command("xpcshell", category="misc", description="Run the xpcshell binary")
@CommandArgument(
    "args", nargs=argparse.REMAINDER, help="Arguments to provide to xpcshell"
)
def xpcshell(command_context, args):
    dist_bin = Path(command_context._topobjdir, "dist", "bin")
    browser_dir = dist_bin / "browser"

    if sys.platform == "win32":
        xpcshell = dist_bin / "xpcshell.exe"
    else:
        xpcshell = dist_bin / "xpcshell"

    command = [
        str(xpcshell),
        "-g",
        str(dist_bin),
        "-a",
        str(browser_dir),
    ]

    if args:
        command.extend(args)

    return command_context.run_process(
        command,
        pass_thru=True,
        ensure_exit_code=False,
    )