mirror of
https://github.com/servo/servo.git
synced 2025-07-17 04:13:42 +01:00
This is the same configuration as gecko and is convenient for making changes compared to using releases from pypi
51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
# 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 os
|
|
import sys
|
|
|
|
from mozlog.structured import structuredlog, commandline
|
|
|
|
from .. import wptcommandline
|
|
|
|
from update import WPTUpdate
|
|
|
|
def remove_logging_args(args):
|
|
"""Take logging args out of the dictionary of command line arguments so
|
|
they are not passed in as kwargs to the update code. This is particularly
|
|
necessary here because the arguments are often of type file, which cannot
|
|
be serialized.
|
|
|
|
:param args: Dictionary of command line arguments.
|
|
"""
|
|
for name in args.keys():
|
|
if name.startswith("log_"):
|
|
args.pop(name)
|
|
|
|
|
|
def setup_logging(args, defaults):
|
|
"""Use the command line arguments to set up the logger.
|
|
|
|
:param args: Dictionary of command line arguments.
|
|
:param defaults: Dictionary of {formatter_name: stream} to use if
|
|
no command line logging is specified"""
|
|
logger = commandline.setup_logging("web-platform-tests-update", args, defaults)
|
|
|
|
remove_logging_args(args)
|
|
|
|
return logger
|
|
|
|
|
|
def run_update(logger, **kwargs):
|
|
updater = WPTUpdate(logger, **kwargs)
|
|
return updater.run()
|
|
|
|
|
|
def main():
|
|
args = wptcommandline.parse_args_update()
|
|
logger = setup_logging(args, {"mach": sys.stdout})
|
|
assert structuredlog.get_default_logger() is not None
|
|
success = run_update(logger, **args)
|
|
sys.exit(0 if success else 1)
|
|
|