FFX 划分为一些责任领域,与查找并运行 fuchsia 交互程序相关的核心功能位于核心程序 (ffx cli) 中,而实际程序构建为“子工具”(以前称为插件),子工具可通过 ffx
CLI 进行编译,也可作为外部工具运行(使用 FHO 子工具接口)。
要添加可通过 ffx
访问的功能,您可以编写自己的子工具并将其集成到 build 中。
开始使用子工具
如需开始为 ffx
构建简单的子工具(以前称为插件),请参阅开发 ffx 子工具。
如果您已有插件,并且想要或需要将其迁移到新的子工具接口,请参阅迁移现有插件。
我们还保留了子工具的参考实现,该子工具会执行一些名为 ffx-echo
的基本操作,并始终作为如何编写子工具的规范来源。
新的子工具核对清单
如果这是某个大型项目的开始,您应该尝试完成以下操作,以确保新的子工具能够随着时间的推移正常运行:
- 将新的子工具标记为实验性,让用户预期它在稳定之前会发生变化。
- 针对与子工具相关的所有输出使用
Writer
。如果预计在某个时间点会包含在 SDK 中,请确保使用具有具体可序列化类型的MachineWriter
,并且当--machine json
传递到ffx
时,输出可以正常运行。 - 使用
fho::Error
类型在子工具边界正确描述用户可操作的错误和 bug。 - 如果子工具位于
ffx
树中,它应该具有清晰的OWNERS
文件,用于描述拥有它的团队以及可以针对该工具检查 CL 的个人。 - 如果它位于
ffx
树之外,但在 fuchsia.git 代码库内,则必须引用ffx owners file
(即file:/src/developer/ffx/OWNERS
)应用于ffx
和子工具之间的 API 边界处的任何文件,以便我们可以随着时间的推移主动更改该 API 边界。
旧版插件引用
如需了解旧版插件宏接口的相关信息,请参阅: