Bug 1916793 - Add suggestion to add platform-tools dir to PATH r=firefox-build-system-reviewers,nalexander

Differential Revision: https://phabricator.services.mozilla.com/D250499
This commit is contained in:
Alex Hochheiden
2025-05-22 18:49:26 +00:00
committed by ahochheiden@mozilla.com
parent 81df3f97dd
commit c4ca716204

View File

@@ -97,6 +97,16 @@ ac_add_options --enable-artifact-builds
mk_add_options MOZ_OBJDIR=./objdir-frontend mk_add_options MOZ_OBJDIR=./objdir-frontend
""" """
SUGGEST_ADD_PLATFORM_TOOLS_PATH = """
If you plan to use adb or other platform tools directly on the command line, it may
be useful to add them to your PATH. Edit your shell initialization script to prepend
{platform_tools} to your PATH. For example:
export PATH="{platform_tools}:$PATH"
Then restart your shell.
"""
class GetNdkVersionError(Exception): class GetNdkVersionError(Exception):
pass pass
@@ -611,7 +621,8 @@ def ensure_android_packages(
if not packages: if not packages:
packages = get_android_packages(AndroidPackageList.ALL) packages = get_android_packages(AndroidPackageList.ALL)
sdkmanager_tool = get_sdkmanager_tool_path(sdk_path=get_sdk_path(os_name)) sdk_path = get_sdk_path(os_name)
sdkmanager_tool = get_sdkmanager_tool_path(sdk_path=sdk_path)
if avd_manifest is not None: if avd_manifest is not None:
packages.add(avd_manifest["emulator_package"]) packages.add(avd_manifest["emulator_package"])
@@ -634,6 +645,7 @@ def ensure_android_packages(
if not no_interactive: if not no_interactive:
subprocess.check_call(args, env=env) subprocess.check_call(args, env=env)
suggest_platform_tools_path(packages, sdk_path)
return return
# Flush outputs before running sdkmanager. # Flush outputs before running sdkmanager.
@@ -653,6 +665,30 @@ def ensure_android_packages(
if list_packages: if list_packages:
subprocess.check_call([str(sdkmanager_tool), "--list"]) subprocess.check_call([str(sdkmanager_tool), "--list"])
suggest_platform_tools_path(packages, sdk_path)
def suggest_platform_tools_path(packages: set, sdk_path: Path):
if "platform-tools" in packages:
platform_tools_dir = (sdk_path / "platform-tools").resolve()
path_entries = os.environ.get("PATH", "").split(os.pathsep)
normalized_entries = {
os.path.normpath(
os.path.normcase(os.path.expanduser(os.path.expandvars(p)))
)
for p in path_entries
}
normalized_platform_tools_dir = os.path.normpath(
os.path.normcase(platform_tools_dir)
)
if normalized_platform_tools_dir not in normalized_entries:
print(
SUGGEST_ADD_PLATFORM_TOOLS_PATH.format(
platform_tools=normalized_platform_tools_dir
)
)
def generate_mozconfig(os_name: str, artifact_mode=False): def generate_mozconfig(os_name: str, artifact_mode=False):
extra_lines = [] extra_lines = []