#wasm #build #cli-command #api-version #cli

app daikokucli

用于创建和构建 WASM 可执行文件的 CLI 工具

2 个版本 (1 个稳定版本)

1.0.0 2024 年 3 月 27 日
0.0.1 2024 年 3 月 27 日

#809命令行工具

MIT/Apache

310KB
2.5K SLoC

daikokucli

CLI architecture

安装

可以使用以下 Cargo 命令从源代码安装和编译此项目

$ cargo install daikokucli
or
$ brew tap maif/daikokucli
$ brew install daikokucli

此外,还有在 CI 上构建的 预编译工件 可供下载。

可以使用以下命令确认安装

$ daikokucli version

可以使用以下命令探索子命令

$ daikokucli help

核心命令

Daikokucli 使用您的家目录中的 .daikoku 文件来存储项目列表。每个使用 CLI 创建的项目都应该包含一个 src 文件夹和一个 .daikoku/.environments。此文件将包含

您可以从零开始创建一个新项目

daikokucli create --name=<PROJECT_NAME> --path=<PROJECT_PATH_OR_CURRENT_FOLDER>

然后添加一个默认的 Daikoku 环境

daikokucli environments add --name=<ENVIRONMENT_NAME> --server=<ENVIROMNENT_SERVER>

Daikoku 服务器必须是可访问的,配置保存前将进行检查

您可以从头开始开发并监视文件更改

daikokucli watch

常见的做法是利用 Daikoku CMS 中的指令来根据连接用户的权限访问私有实体。您可以通过从您的 Daikoku 个人资料页面粘贴令牌来配置用于通过认证用户访问您的 CMS 的令牌。

daikokucli login --token=<YOUR_TOKEN>

如果您有多个环境,您可以通过以下方式轻松地在它们之间切换

daikokucli watch --environment=<NAME_OF_YOUR_ENVIRONMENT>

或永久地通过更改默认项目或环境

daikokucli environments default --name=<NAME_OF_YOUR_ENVIRONMENT>
daikokucli projects default --name=<NAME_OF_YOUR_PROJECT>

您可以查看当前使用的项目和其他项目

daikokucli projects list

在任意时刻,您都可以跟踪现有的 CMS 文件夹或更新其信息

daikokucli projects add --name=<NAME_OF_YOUR_PROJECT> --path=<PATH_TO_YOUR_PROJECT> --overwrite=<true|false>

准备好后,您可以同步您的源代码与 Daikoku 环境

daikokucli sync

通过导入现有的项目来启动新项目

如果您已经在 Daikoku 上有一个遗留 CMS,您可以从导入它开始

daikokucli projects import --name=<NEW_NAME_OF_YOUR_PROJECT> \
                           --path=<PATH_TO_THE_NEW_PROJECT> \
                           --server=<DAIKOKU_SERVER_TO_PULL> \
                           --token=<AUTHENTICATION_TOKEN>

管理您的资产

您可以通过在您的 CMS 项目中创建一个 /assets 文件夹来直接管理您的图像、图表或任何类型的文件。

每个资产都使用以下命令保存在您的 Daikoku 的 S3 中

daikokucli assets add --filename=<ASSET_FILENAME> \
  --path=<ONLY_NESTED_FOLDER_BEHIND_ASSETS_FOLDER> \
  --desc=<ASSET_DESCRIPTION> \
  --title=<ASSET_TITLE>
  --slug=<ASSET_SLUG>

如果您需要为您的资产指定特定的 slug,您可以选择通过指定 slug 字段来替换自动生成的 slug。此外,您可以排除 path 字段,这在从 assets 目录内的子文件夹创建资产时是必要的。

要删除您的资产,您必须提供 filenameslug(如果它们不同的话)

daikokucli assets remove --slug=<CUSTOM_SLUG> --filename=<ASSET_FILENAME>

与其他命令一样,您可以显示所有已注册的资产

daikokucli assets list

如果您希望使用单个命令同步所有资产,这比分别进行同步要快,尽管可配置性会降低。

daikokucli assets sync

授权的应用程序

在运行 daikoku login 命令之前,您必须通过添加 CLI 服务器来配置您的租户。默认情况下,服务器设置为 https://127.0.0.1:3334,但您可以使用 WATCHING_PORT 环境变量来覆盖它。

daikokucli login

CMS 指令

daikoku-user

参数:

  • 字符串用户 ID
{{#daikoku-user "{{userId}}"}}
  <div>
    <span>{{user.name}}</span>
    <img src="{{user.picture}}" />
  </div>
{{/daikoku-user}}

daikoku-owned-apis

参数

  • 可见性:可以是 Private | Public | All
{{#daikoku-owned-apis visibility="Private"}}
  <span>Mon api : {{api.name}}</span>
{{/daikoku-owned-apis}}

daikoku-owned-api

参数:

  • 字符串 API ID
  • API 版本可选,但未指定时默认为 1.0.0。
{{#daikoku-owned-api "{{apiId}}" version="1.0.0"}}
  <span>Mon api : {{api.name}}</span>
{{/daikoku-owned-api}}

daikoku-json-owned-apis

参数:

  • 可见性:Private,Public 或 All
{{#daikoku-json-owned-apis visibility="Private"}}

{{/daikoku-json-owned-apis}}

daikoku-json-owned-api

参数:

  • API ID,期望字符串值
  • API 版本可选,但未指定时默认为 1.0.0。
{{#daikoku-json-owned-api "{{apiId}}" version="1.0.0"}}
{{/daikoku-json-owned-api}}

daikoku-owned-teams

{{#daikoku-owned-teams}}
  <span>Ma team : {{team.name}}
{{/daikoku-owned-teams}}

daikoku-owned-team

参数:

  • 团队 ID,期望字符串值"
{{#daikoku-owned-team "{{teamId}}"}}
  <span>Mon team : {{team.name}}</span>
{{/daikoku-owned-team}}

daikoku-json-owned-teams

{{daikoku-json-owned-teams}}

daikoku-json-owned-team

参数:

  • 团队 ID,期望字符串值
{{#daikoku-json-owned-team "{{teamId}}"}}

{{/daikoku-json-owned-team}}

租户

{{tenant.name}} - {{tenant.style.description}}

is_admin

{{is_admin}}

已连接

{{connected}}

用户

当您从指令中返回用户时,您可以使用以下字段

  • 名称
  • 电子邮件
  • _id
  • _humandReadableId
  • 图片
  • isDaikokuAdmin
  • starredApis
<div>
  {{user.name}} - {{user.email}}
</div>

请求

<div>
  {{request.path}} - {{request.method}} - {{request.headers}}
</div>

daikoku-css

<div>
  {{daikoku-css}}
</div>

对于

参数:

  • 在辅助内容中使用的字段名称
{{#for '{{team.users}}' field='myuser' }}
  {{myuser.userId}}
{{/for}}

大小

{{size '{{team.users}}'}}

ifeq

{{#ifeq "{{plan.type}}" "FreeWithoutQuotas"}}
  You'll pay nothing and do whatever you want
{{/ifeq}}

ifnoteq

{{#ifnoteq "{{plan.type}}" "FreeWithoutQuotas"}}
  You'll pay nothing and do whatever you want
{{/ifnoteq}}

getOrElse

{{getOrElse "{{plan.customName}}" "Un plan"}}

translate

{{translate 'Logout'}}

daikoku-path-param

参数:

  • 路径参数的位置
{{daikoku-path-param '0'}}

daikoku-query-param

参数:

  • 查询参数的名称
{{daikoku-query-param 'my-query-param'}}

daikoku-template-wrapper

参数:

  • 块路径
  • 可用于内容的 key=value 列表
{{#daikoku-template-wrapper '<wrapper-id>' <named-parameter>="<value>" }} 
  
{{/daikoku-template-wrapper}}"

daikoku-apis

{{#daikoku-apis}}
  <span>Api : {{api.name}}</span>
{{/daikoku-apis}}

daikoku-api

参数:

  • API ID,期望字符串值
{{#daikoku-api "{{apiId}}" version="1.0.0"}}
  <span>Mon api : {{api.name}}</span>
{{/daikoku-api}}"

daikoku-json-apis

{{daikoku-json-apis}}

daikoku-json-api

参数:

  • API ID,期望字符串值
{{#daikoku-json-api "{{apiId}}" version="1.0.0"}}

{{/daikoku-json-api}}

daikoku-teams

{{#daikoku-teams}}
  <span>Team : {{team.name}}</span>
{{/daikoku-teams}}

daikoku-team

参数:

  • 团队 ID,期望字符串值
{{#daikoku-team "{{<teamId>}}"}}
  <span>My team : {{team.name}}</span>
{{/daikoku-team}}

daikoku-json-teams

{{daikoku-json-teams}}

daikoku-json-team

参数:

  • 团队 ID,期望字符串值
{{#daikoku-json-team "{{<teamId>}}"}}

{{/daikoku-json-team}}

daikoku-documentations

参数:

  • API ID,期望字符串值
{{#daikoku-documentations "{{<apiId>}}"}}
  <span>{{documentation.title}}</span>
{{/daikoku-documentations}}

daikoku-documentations-page

参数:

  • API ID,期望字符串值
  • 页面 ID,作为字符串值
{{#daikoku-documentations-page "<apiId>" page="<pageId>"}}
  {{documentation.content}}
{{/daikoku-documentations-page}}

daikoku-documentations-page-id

参数:

  • 团队 ID,期望字符串值
  • 与预期页面 ID 对应的命名页面参数
{{#daikoku-documentations-page-id "<apiId>" page="<pageId>"}}
  {{content}}
{{/daikoku-documentations-page-id}}"

daikoku-plans

参数:

  • API ID
{{#daikoku-plans "<apiId>"}}
  <span>{{plan.type}}</span>
{{/daikoku-plans}}

许可证

本项目根据 Apache 2.0 许可证及 LLVM 例外条款授权。

贡献

除非您明确表示,否则您提交给本项目包含在内的任何贡献,如 Apache-2.0 许可证定义,均应按上述方式授权,不附加任何其他条款或条件。

依赖项

~19–33MB
~521K SLoC