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)¶
- 异常 mozbuild.action.tooltool.BadHeaderValue¶
基类:
Exception
- 异常 mozbuild.action.tooltool.DigestMismatchException(filename)¶
- 异常 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)¶
- 类 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)¶
-
- 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)¶
-
- 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)¶