# 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 logging
import os
import sys
import tempfile
from mach.decorators import Command, CommandArgument
from mozbuild.base import BinaryNotFoundException
requirements = os.path.join(os.path.dirname(__file__), "requirements", "base.txt")
def _init(command_context):
command_context.activate_virtualenv()
command_context.virtualenv_manager.install_pip_requirements(
requirements, require_hashes= False
)
@Command( "fetch-condprofile", category= "testing")
@CommandArgument( "--target-dir", default= None, help= "Target directory")
@CommandArgument( "--platform", default= None, help= "Platform")
@CommandArgument( "--scenario", default= "full", help= "Scenario") # grab choices
@CommandArgument( "--customization", default= "default", help= "Customization") # same
@CommandArgument( "--task-id", default= None, help= "Task ID")
@CommandArgument( "--download-cache", action= "store_true", default= True)
@CommandArgument(
"--repo",
default= "mozilla-central",
choices=[ "mozilla-central", "try"],
help= "Repository",
)
def fetch(
command_context,
target_dir,
platform,
scenario,
customization,
task_id,
download_cache,
repo,
):
_init(command_context)
from condprof.client import get_profile
from condprof.util import get_current_platform, get_version
if platform is None:
platform = get_current_platform()
if target_dir is None:
target_dir = tempfile.mkdtemp()
version = get_version(command_context.get_binary_path())
get_profile(
target_dir,
platform,
scenario,
customization,
task_id,
download_cache,
repo,
version,
)
print( "Downloaded conditioned profile can be found at: %s" % target_dir)
@Command( "run-condprofile", category= "testing")
@CommandArgument( "archive", help= "Archives Dir", type=str, default= None)
@CommandArgument( "--firefox", help= "Firefox Binary", type=str, default= None)
@CommandArgument( "--scenario", help= "Scenario to use", type=str, default= "all")
@CommandArgument( "--profile", help= "Existing profile Dir", type=str, default= None)
@CommandArgument(
"--customization", help= "Profile customization to use", type=str, default= "all"
)
@CommandArgument(
"--visible", help= "Don't use headless mode", action= "store_true", default= False
)
@CommandArgument(
"--archives-dir", help= "Archives local dir", type=str, default= "/tmp/archives"
)
@CommandArgument(
"--force-new", help= "Create from scratch", action= "store_true", default= False
)
@CommandArgument(
"--strict",
help= "Errors out immediatly on a scenario failure",
action= "store_true",
default= True,
)
@CommandArgument(
"--geckodriver",
help= "Path to the geckodriver binary",
type=str,
default=sys.platform.startswith( "win") and "geckodriver.exe" or "geckodriver",
)
@CommandArgument( "--device-name", help= "Name of the device", type=str, default= None)
def run(command_context, **kw):
os.environ[ "MANUAL_MACH_RUN"] = "1"
_init(command_context)
if kw[ "firefox"] is None:
try:
kw[ "firefox"] = command_context.get_binary_path()
except BinaryNotFoundException as e:
command_context.log(
logging.ERROR,
"run-condprofile",
{ "error": str(e)},
"ERROR: {error}",
)
command_context.log(
logging.INFO, "run-condprofile", { "help": e.help()}, "{help}"
)
return 1
from condprof.runner import run
run(**kw)
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet am 2026-11-08)
¤
*© Formatika GbR, Deutschland
|
|