28 个版本 (2 个稳定版)
新 1.0.1 | 2024 年 8 月 22 日 |
---|---|
0.3.3 | 2024 年 8 月 9 日 |
0.3.2 | 2024 年 7 月 26 日 |
0.1.14 | 2024 年 3 月 29 日 |
0.1.8 | 2023 年 10 月 5 日 |
#387 在 命令行工具 中
每月 2,334 次下载
用于 2 crates
39KB
831 行
莱姆云示例模板
此存储库包含通过 golem new
命令可用的所有 示例。
请参阅 莱姆 CLI 页面 上的示例模板部分。
结构
示例按照 客语言 组织到目录中。每个客语言目录包含一个 INSTRUCTIONS
文本文件,该文件本身也是一个模板,并在执行 golem new
命令时打印出来。
客语言的每个子目录都是一个模板,其中目录的名称成为模板的名称。
每个 示例 由任意数量的文件和子目录以及一个 metadata.json
文件组成。
golem new
命令将以下定义的 模板规则 应用到每个文件和目录的名称,以及每个文件的内容。
元数据文件包含所需信息,并允许启用一些额外的项目生成步骤。
元数据 JSON
以下字段是必需的
description
是示例的文本描述
以下字段是可选的
requiresAdapter
是布尔值,默认为 true。如果为 true,则将相应的 WASI Preview2 到 Preview1 适配器版本复制到生成的项目中(基于客语言)到adapters
目录。requiresGolemHostWIT
是布尔值,默认为 false。如果为 true,则将 Golem 特定的 WIT 接口复制到wit/deps
。requiresWASI
是布尔值,默认为 false。如果为 true,则将与莱姆云兼容的 WASI Preview2 WIT 接口复制到wit/deps
。exclude
是一个子路径列表,它作为一个简化的.gitignore
文件工作。其主要目的是帮助开发循环,在示例上进行工作,在未来它可能被.gitignore
文件所取代。
模板规则
Golem 示例目前很简单,不使用任何已知的模板语言,以便保持示例 可编译 - 这使得对现有示例进行工作以及添加新示例非常方便,因为您可以立即验证它是否可以编译成 Golem 模板。
当调用 golem-new
时,用户指定一个 模板名称。提供的组件名称必须使用 PascalCase
、snake_case
或 kebab-case
。
有一个可选参数用于定义 包名,默认为 golem:component
。它必须是 pack:name
格式。
以下占位符将被提供的组件名称替换,应用模板中使用的格式
component-name
ComponentName
component_name
pack::name
pack:name
pack_name
pack-name
pack/name
PackName
测试示例
可以使用测试 cli 应用 来测试示例生成和说明。该应用还接受一个过滤器参数,它将示例名称与正则表达式匹配,例如,要测试 go 示例,请使用
cargo run --bin golem-examples-test-cli -- -f go
或精确匹配示例名称
cargo run --bin golem-examples-test-cli -- -f '^go-default$'
期望特定语言的工具可用。
测试应用将实例化示例,然后执行说明(所有以
开头的行)。
示例生成在 /examples-test
目录中。
依赖项
~4–15MB
~147K SLoC