mozbuild.action 包

子模块

mozbuild.action.buildlist 模块

一个通用的脚本,用于在文件末尾添加条目,前提是该条目不存在。

用法:buildlist.py <filename> <entry> [<entry> …]

mozbuild.action.buildlist.addEntriesToListFile(listFile, entries)

给定一个文件 listFile,其中每行包含一个条目,将 entries 中的每个条目添加到该文件中,除非它已存在。

mozbuild.action.buildlist.main(args)

mozbuild.action.check_binary 模块

mozbuild.action.download_wpt_manifest 模块

mozbuild.action.download_wpt_manifest.main()

mozbuild.action.dump_env 模块

mozbuild.action.dumpsymbols 模块

mozbuild.action.dumpsymbols.dump_symbols(target, tracking_file, count_ctors=False)
mozbuild.action.dumpsymbols.main(argv)

mozbuild.action.exe_7z_archive 模块

mozbuild.action.exe_7z_archive.archive_exe(pkg_dir, tagfile, sfx_package, package, use_upx)
mozbuild.action.exe_7z_archive.main(args)

mozbuild.action.fat_aar 模块

获取并解压特定于体系结构的 Maven zip 文件,验证跨体系结构的兼容性,并准备 Android 多体系结构 fat AAR 构建的输入。

mozbuild.action.fat_aar.fat_aar(distdir, aars_paths, no_process=False, no_compatibility_check=False)
mozbuild.action.fat_aar.main(argv)

mozbuild.action.file_generate 模块

mozbuild.action.file_generate.main(argv)

mozbuild.action.file_generate_wrapper 模块

mozbuild.action.file_generate_wrapper.action(fh, script, target_dir, *args)

mozbuild.action.generate_symbols_file 模块

mozbuild.action.generate_symbols_file.generate_symbols_file(output, *args)

mozbuild.action.html_fragment_preprocesor 模块

mozbuild.action.html_fragment_preprocesor.fill_html_fragments_map(fragment_map, path, template, doctype=None)
mozbuild.action.html_fragment_preprocesor.generate(output, *inputs)

从输入 xml 文件构建 html 片段加载器 JS 文件。

xml 文件应采用以下格式:<template>…xhtml 标记…</template>

<template><template name=”fragment_name”>…xhtml 标记…</template>…</template> 其中有多个模板。所有标记都应具有正确的命名空间。

在 JS 文件中,调用 getHTMLFragment(key) 将返回与 key 匹配的 xml 文件中的 HTML 字符串。

key 格式为 filename_without_extension/template_name(对于具有多个模板的文件),或仅为 filename_without_extension(对于具有一个模板的文件)。filename_without_extension 是 xml 文件名(不含 .xml 扩展名),而 template_name 是包含 xml 片段的模板节点的 name 属性。

参数:output – 生成 JS 文件的文件句柄 inputs – 要包含在加载器中的 xml 文件名列表

返回值:应触发重新运行此命令的一组依赖项。这最终将返回到构建系统,供后端使用,以确保在任何依赖项更改时都会发生增量重建。

mozbuild.action.html_fragment_preprocesor.get_fragment_key(path, template_name=None)
mozbuild.action.html_fragment_preprocesor.get_html_fragments_from_file(fragment_map, path)

mozbuild.action.install 模块

mozbuild.action.install.main(args)

mozbuild.action.jar_maker 模块

mozbuild.action.jar_maker.main(args)

mozbuild.action.l10n_merge 模块

mozbuild.action.l10n_merge.main(argv)

mozbuild.action.langpack_manifest 模块

mozbuild.action.langpack_manifest.convert_entry_flags_to_platform_codes(flags)
mozbuild.action.langpack_manifest.create_webmanifest(locstr, version, min_app_ver, max_app_ver, app_name, l10n_basedir, langpack_eid, ftl, chrome_entries)
mozbuild.action.langpack_manifest.get_author(ftl)
mozbuild.action.langpack_manifest.get_build_date()

返回当前日期或 SOURCE_DATE_EPOCH(如果已设置)。

mozbuild.action.langpack_manifest.get_dt_from_hg(path)
mozbuild.action.langpack_manifest.get_timestamp_for_locale(path)
mozbuild.action.langpack_manifest.get_title_and_description(app, locale)
mozbuild.action.langpack_manifest.get_version_maybe_buildid(app_version)
mozbuild.action.langpack_manifest.main(args)
mozbuild.action.langpack_manifest.parse_chrome_manifest(path, base_path, chrome_entries)
mozbuild.action.langpack_manifest.parse_flat_ftl(path)
mozbuild.action.langpack_manifest.write_file(path, content)

mozbuild.action.make_dmg 模块

mozbuild.action.make_dmg.main(args)

mozbuild.action.make_unzip 模块

mozbuild.action.make_unzip.main(args)
mozbuild.action.make_unzip.make_unzip(package)

mozbuild.action.node 模块

mozbuild.action.node.execute_node_cmd(node_cmd_list)

执行给定的 Node 命令列表。

参数:node_cmd_list – 要执行的命令和参数列表

返回值:应触发重新运行此命令的一组依赖项。这最终将返回到构建系统,供后端使用,以确保在任何依赖项更改时都会发生增量重建。

预期 Node 脚本将为所有依赖项输出行到标准输出,每个行都以字符串“dep:”为前缀。这些行将构成返回的依赖项集。任何没有此类前缀的行都将简单地打印到标准错误而不是标准输出。

mozbuild.action.node.generate(output, node_script, *files)

调用给定的 node_script 来转换给定的模块。

参数:output – 一个虚拟文件,由构建系统使用。可以忽略。node_script – 要执行的脚本。必须在 SCRIPT_ALLOWLIST 中files – 要转换的文件,将作为参数传递给脚本

返回值:应触发重新运行此命令的一组依赖项。这最终将返回到构建系统,供后端使用,以确保在任何依赖项更改时都会发生增量重建。

mozbuild.action.node.is_script_in_allowlist(script_path)

mozbuild.action.package_generated_sources 模块

mozbuild.action.package_generated_sources.main(argv)

mozbuild.action.preprocessor 模块

mozbuild.action.preprocessor.generate(output, *args)
mozbuild.action.preprocessor.main(args)

mozbuild.action.process_define_files 模块

mozbuild.action.process_define_files.main(argv)
mozbuild.action.process_define_files.process_define_file(output, input)

创建给定的配置头文件。配置头文件是通过获取相应的源文件并替换一些#define/#undef 出现来生成的

  • “#undef NAME” 转换为 “#define NAME VALUE”

  • “#define NAME” 保持不变

  • “#define NAME ORIGINAL_VALUE” 转换为 “#define NAME VALUE”

  • “#undef UNKNOWN_NAME” 转换为 “/* #undef UNKNOWN_NAME */”

  • 保留空格。

作为特殊规则,“#undef ALLDEFINES” 将转换为所有已定义变量的“#define NAME VALUE”。

mozbuild.action.process_install_manifest 模块

mozbuild.action.process_install_manifest.main(argv)
mozbuild.action.process_install_manifest.process_manifest(destdir, paths, track, no_symlinks=False, defines={})

mozbuild.action.symbols_archive 模块

mozbuild.action.symbols_archive.main(argv)
mozbuild.action.symbols_archive.make_archive(archive_name, base, exclude, include)

mozbuild.action.test_archive 模块

mozbuild.action.tooltool 模块

异常 mozbuild.action.tooltool.BadFilenameException(filename)

基类:ExceptionWithFilename

异常 mozbuild.action.tooltool.BadHeaderValue

基类:Exception

异常 mozbuild.action.tooltool.DigestMismatchException(filename)

基类:ExceptionWithFilename

异常 mozbuild.action.tooltool.ExceptionWithFilename(filename)

基类:Exception

mozbuild.action.tooltool.FileRecord(filename, size, digest, algorithm, unpack=False, version=None, visibility=None)

基类:object

describe()
present()
validate()
validate_digest()
validate_size()
mozbuild.action.tooltool.FileRecordJSONDecoder(*, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, strict=True, object_pairs_hook=None)

基类:JSONDecoder

我帮助 json 模块从 JSON 文件中具体化 FileRecord。我理解 FileRecords 和 FileRecords 列表。目前,我忽略了我不期望的东西

decode(s)

返回s(包含 JSON 文档的str实例)的 Python 表示形式。

process_file_records(obj)
mozbuild.action.tooltool.FileRecordJSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)

基类:JSONEncoder

default(f)

在子类中实现此方法,以便它为o返回一个可序列化的对象,或者调用基实现(引发TypeError)。

例如,要支持任意迭代器,您可以像这样实现 default

def default(self, o):
    try:
        iterable = iter(o)
    except TypeError:
        pass
    else:
        return list(iterable)
    # Let the base class default method raise the TypeError
    return JSONEncoder.default(self, o)
encode_file_record(obj)
异常 mozbuild.action.tooltool.FileRecordJSONEncoderException

基类:Exception

异常 mozbuild.action.tooltool.InvalidCredentials

基类:Exception

异常 mozbuild.action.tooltool.InvalidManifest

基类:Exception

mozbuild.action.tooltool.Manifest(file_records=None)

基类:object

copy()
dump(output_file, fmt='json')
dumps(fmt='json')
load(data_file, fmt='json')
loads(data_string, fmt='json')
present()
valid_formats = ('json',)
validate()
validate_digests()
validate_sizes()
异常 mozbuild.action.tooltool.MissingFileException(filename)

基类:ExceptionWithFilename

mozbuild.action.tooltool.TarFile(name=None, mode='r', fileobj=None, format=None, tarinfo=None, dereference=None, ignore_zeros=None, encoding=None, errors='surrogateescape', pax_headers=None, debug=None, errorlevel=None, copybufsize=None)

基类: TarFile

extract(*args, **kwargs)

将归档文件中的一个成员提取到当前工作目录,使用其完整名称。其文件信息将尽可能准确地提取。`member` 可以是文件名或 TarInfo 对象。您可以使用 `path` 指定不同的目录。文件属性(所有者、mtime、模式)将被设置,除非 `set_attrs` 为 False。如果 `numeric_owner` 为 True,则仅使用用户/组名称的数字,而不是名称。

在提取之前将调用 `filter` 函数。它可以返回更改后的 TarInfo 或 None 以跳过成员。接受常用过滤器的字符串名称。

extractall(*args, **kwargs)

将归档文件中的所有成员提取到当前工作目录,并在之后设置目录上的所有者、修改时间和权限。`path` 指定要提取到的不同目录。`members` 是可选的,并且必须是 getmembers() 返回的列表的子集。如果 `numeric_owner` 为 True,则仅使用用户/组名称的数字,而不是名称。

在提取每个成员之前,将对每个成员调用 `filter` 函数。它可以返回更改后的 TarInfo 或 None 以跳过成员。接受常用过滤器的字符串名称。

mozbuild.action.tooltool.add_files(manifest_file, algorithm, filenames, version, visibility, unpack)
mozbuild.action.tooltool.calculate_mac(mac_type, access_token, algorithm, timestamp, nonce, method, name, host, port, content_hash)
mozbuild.action.tooltool.calculate_payload_hash(algorithm, payload, content_type)
mozbuild.action.tooltool.change_visibility(base_urls, digest, visibility, auth_file)
mozbuild.action.tooltool.clean_path(dirname)

如果子树存在,则将其删除。unpack_file() 的辅助函数。

mozbuild.action.tooltool.create_file_record(filename, algorithm)
mozbuild.action.tooltool.delete_instances(base_urls, digest, auth_file)
mozbuild.action.tooltool.digest_file(f, a)

我接收一个类似文件对象 'f' 并返回一个十六进制字符串,其中包含将算法 'a' 应用于 'f' 的结果。

mozbuild.action.tooltool.execute(cmd)

执行 CMD,在 info 级别记录其 stdout

mozbuild.action.tooltool.fetch_file(base_urls, file_record, grabchunk=4096, auth_file=None, region=None)
mozbuild.action.tooltool.fetch_files(manifest_file, base_urls, filenames=[], cache_folder=None, auth_file=None, region=None)
mozbuild.action.tooltool.freespace(p)

返回目录 `p` 下可用的字节数

mozbuild.action.tooltool.get_hexdigest(val)
mozbuild.action.tooltool.list_manifest(manifest_file)

我知道如何打印某个位置的所有文件

mozbuild.action.tooltool.main(argv, _skip_logging=False)
mozbuild.action.tooltool.make_taskcluster_header(credentials, req)
mozbuild.action.tooltool.normalize_header_attr(val)
mozbuild.action.tooltool.normalize_string(mac_type, timestamp, nonce, method, name, host, port, content_hash)
mozbuild.action.tooltool.open_manifest(manifest_file)

我知道如何获取文件名并将其加载到 Manifest 对象中

mozbuild.action.tooltool.parse_content_type(content_type)
mozbuild.action.tooltool.parse_url(url)
mozbuild.action.tooltool.prepare_header_val(val)
mozbuild.action.tooltool.process_command(options, args)

我知道如何获取程序参数列表并开始对其进行正确处理

mozbuild.action.tooltool.purge(folder, gigs)

如果 gigs 不为 0,则删除 folder 中的文件,直到释放 gigs GB 的空间,从较旧的文件开始。如果 gigs 为 0,则执行完全清除。不会递归删除子文件夹中的文件。

mozbuild.action.tooltool.random() x [0, 1) 区间内。
mozbuild.action.tooltool.random_string(length)
mozbuild.action.tooltool.request(url, auth_file=None)
mozbuild.action.tooltool.request_has_data(req)
mozbuild.action.tooltool.retriable(*retry_args, **retry_kwargs)

此函数源自 redo 2.0.3 https://github.com/mozilla-releng/redo 用于 retry() 的装饰器工厂。将您的函数包装在 @retriable(…) 中以赋予其重试功能!

mozbuild.action.tooltool.retrier(attempts=5, sleeptime=10, max_sleeptime=300, sleepscale=1.5, jitter=1)

此函数源自 redo 2.0.3 https://github.com/mozilla-releng/redo 一个在重试之间休眠的生成器函数,处理指数退避和抖动。您要重试的操作应该在 retrier 产生后运行。

mozbuild.action.tooltool.retry(action, attempts=5, sleeptime=60, max_sleeptime=300, sleepscale=1.5, jitter=1, retry_exceptions=(<class 'Exception'>, ), cleanup=None, args=(), kwargs={}, log_args=True)

此函数源自 redo 2.0.3 https://github.com/mozilla-releng/redo 调用操作函数,直到它成功或我们放弃。

mozbuild.action.tooltool.safe_extract(tar, path='.', *, numeric_owner=False)
mozbuild.action.tooltool.send_operation_on_file(data, base_urls, digest, auth_file)
mozbuild.action.tooltool.touch(f)

用于修改缓存文件中的 mtime;mtime 由 purge 命令使用

mozbuild.action.tooltool.unpack_file(filename)

解压 filename,假设它是未压缩的或使用 bzip2、xz、gzip、zst 压缩的,或者解压 zip 文件。假设该文件包含一个名为给定文件名基本名称的单个目录。Xz 支持通过调用 ‘tar’ 来处理。

mozbuild.action.tooltool.upload(manifest, message, base_urls, auth_file, region)
mozbuild.action.tooltool.utc_now(offset_in_seconds=0.0)
mozbuild.action.tooltool.validate_manifest(manifest_file)

我验证清单中的所有文件都存在且有效,但如果它们不存在,则不会获取或删除它们

mozbuild.action.tooltool.validate_tar_member(member, path)
mozbuild.action.tooltool.validate_taskcluster_credentials(credentials)

mozbuild.action.unify_symbols 模块

class mozbuild.action.unify_symbols.UnifiedSymbolsFinder(finder1, finder2, sorted=[], **kargs)

基类:UnifiedFinder

unify_file(path, file1, file2)

给定两个 BaseFiles 以及找到它们的位置,返回文件的统一版本。如果文件匹配,则可以返回第一个 BaseFile。如果文件不匹配或其中一个为 None,则该方法返回 None。子类可以在这种情况下决定通过使用其中一个文件来进行统一。

mozbuild.action.unify_symbols.main()

mozbuild.action.unify_tests 模块

class mozbuild.action.unify_tests.UnifiedTestFinder(finder1, finder2, sorted=[], **kargs)

基类:UnifiedFinder

unify_file(path, file1, file2)

给定两个 BaseFiles 以及找到它们的位置,返回文件的统一版本。如果文件匹配,则可以返回第一个 BaseFile。如果文件不匹配或其中一个为 None,则该方法返回 None。子类可以在这种情况下决定通过使用其中一个文件来进行统一。

mozbuild.action.unify_tests.main()

mozbuild.action.unpack_dmg 模块

mozbuild.action.unpack_dmg.main(args)

mozbuild.action.webidl 模块

mozbuild.action.webidl.main(argv)

执行构建系统所需的 WebIDL 代码生成。

mozbuild.action.wrap_rustc 模块

mozbuild.action.wrap_rustc.parse_outputs(crate_output, dep_outputs, pass_l_flag)
mozbuild.action.wrap_rustc.wrap_rustc(args)

mozbuild.action.xpccheck 模块

一个通用的脚本,用于验证所有测试文件是否都在相应的 .toml 文件中。

用法:xpccheck.py <目录> [<目录> …]

mozbuild.action.xpccheck.getIniTests(testdir)
mozbuild.action.xpccheck.main(argv)
mozbuild.action.xpccheck.verifyDirectory(initests, directory)
mozbuild.action.xpccheck.verifyIniFile(initests, directory)

mozbuild.action.xpidl-process 模块

mozbuild.action.zip 模块

mozbuild.action.zip.main(args)

模块内容