>我需要编写一个 Bazel 存储库规则,该规则根据所需的版本将 mysql 二进制文件下载到操作系统和架构中。
我将从用户那里获得所需的版本,从repository_os.name
那里获得操作系统,但我不确定如何访问该架构?
当前的非密封代码使用os.arch
作为足够好的启发式(是的,我知道它不精确(。
除了使用repository_ctx.execute
请求uname -m
外,无法访问该架构。您还可以通过根据repository_ctx.os.name
执行不同的命令来使其在 Windows 上运行(这与 JVM 中的os.name
相同,因此如果它包含win
则可以执行 Windows 命令(。如果您认为需要这样做,请在 https://github.com/bazelbuild/bazel/issues/new 上提交功能请求
主机平台的 CPU 体系结构和操作系统名称可通过 repository_ctx.os 访问。该属性是带有拱形和名称的repository_os结构。