Atlas CLI支持插件,可让您使用自定义命令扩展其功能。您可以使用任何可编译为独立运行二进制文件的编程语言来开发插件。
本教程将引导您使用 Go 和 Cobra 库创建第一个Atlas CLI插件。
要学习;了解有关安装和管理现有插件的更多信息,请参阅 Atlas 插件。
插件的工作原理
每个Atlas CLI插件都包含两个组件:
描述插件及其命令的
manifest.yml文件当用户运行插件命令时Atlas CLI调用的可执行二进制文件
当您运行插件命令时, Atlas CLI会读取清单文件,识别正确的二进制文件,并使用适当的参数执行它。该插件二进制文件独立处理所有命令逻辑。
先决条件
开始之前,请确保已安装以下软件:
创建您的第一个插件
查看清单文件。
打开 manifest.template.yml 以查看插件配置:
name: atlas-cli-plugin-example description: this is an example plugin version: $VERSION github: owner: $GITHUB_REPOSITORY_OWNER name: $GITHUB_REPOSITORY_NAME binary: $BINARY commands: example: description: Root command of the atlas cli plugin example aliases: - example-alias-1 - example-alias-2
manifest.template.yml 定义插件的清单文件。清单会告诉Atlas CLI插件提供了哪些命令以及要执行哪个二进制文件。
查看插件代码。
打开 cmd/plugin/main.go 以查看插件实施:
package main import ( "fmt" "os" "github.com/spf13/cobra" ) func main() { rootCmd := &cobra.Command{ Use: "example", Short: "An example Atlas CLI plugin", Run: func(cmd *cobra.Command, args []string) { fmt.Println("Hello from the Atlas CLI plugin!") }, } if err := rootCmd.Execute(); err != nil { os.Exit(1) } }
该插件使用 Cobra 来定义命令。当Atlas CLI运行该插件时,它会将命令名称和参数传递给二进制文件。
构建并安装插件。
从存储库的根目录中,构建插件二进制文件并生成清单文件:
go build -o bin/binary ./cmd/plugin BINARY=binary VERSION=1.0.0 \ GITHUB_REPOSITORY_OWNER=$(git remote get-url origin | sed 's/.*[:/]\(.*\)\/.*/\1/') \ GITHUB_REPOSITORY_NAME=$(basename -s .git $(git remote get-url origin)) \ envsubst < manifest.template.yml > manifest.yml
创建插件目录并复制文件。默认插件目录取决于您的操作系统:
PLUGIN_DIR=~/Library/Application\ Support/atlascli/plugins/atlas-cli-plugin-example mkdir -p "$PLUGIN_DIR" cp manifest.yml bin/binary "$PLUGIN_DIR/"
PLUGIN_DIR=~/.config/atlascli/plugins/atlas-cli-plugin-example mkdir -p "$PLUGIN_DIR" cp manifest.yml bin/binary "$PLUGIN_DIR/"
自定义您的插件
要创建自己的插件,请修改示例或从头开始:
使用插件的名称、描述和命令更新
manifest.template.yml。在Go (或任何编译为独立运行二进制文件的语言)中实现命令逻辑。
确保您的二进制文件名称与
manifest.template.yml中的binary字段匹配。
重要
清单中的命令名称不得与现有Atlas CLI命令或其他已安装插件的命令冲突。
分发插件
要分发您的插件以便其他人可以使用 atlas plugin install 命令安装,请按照以下步骤操作:
在 GitHub存储库中托管您的插件。
使用 GoReleaser 或类似工具,通过针对多个平台的已编译二进制文件创建 GitHub 版本。示例存储库包括
.goreleaser.yaml配置和用于自动发布的 GitHub Actions 工作流程。
创建 GitHub发布后,用户可以安装您的插件:
atlas plugin install <github-owner>/<repository-name>
使用不同的编程语言
虽然我们建议使用Go和 Cobra,但您可以用任何语言写入插件,并编译为独立运行的可执行二进制文件。有关用不同语言编写的插件的示例,请参阅 GitHub 上的示例Rust插件存储库。
您的插件必须满足以下要求:
您的二进制文件必须接受命令名称作为第一个参数。
您的二进制文件必须是独立运行运行的可执行文件(无外部运行时依赖)。
manifest.yml中的binary字段必须与二进制文件名匹配。
了解详情
atlas plugin - Manage Atlas CLI plugins.
atlas plugin install - Install a plugin.
atlas plugin update - Update a plugin.
atlas plugin uninstall - Uninstall a plugin.