A Atlas CLI oferece suporte a plug-ins que permitem estender sua funcionalidade com comandos personalizados. Você pode desenvolver plugins em qualquer linguagem de programação que seja compilado para um binário autônomo .
Este tutorial orienta você na criação de seu primeiro plugin-in Atlas CLI usando Go e a biblioteca Cobra.
Para saber mais sobre como instalar e gerenciar plug-ins existentes, consulte plugin-in Atlas.
Como funcionam os plugins
Cada plugin do Atlas CLI consiste em dois componentes:
Um arquivo
manifest.ymlque descreve o plugin-in e seus comandosUm binário executável que o Atlas CLI invoca quando um usuário executa um comando de plugin
Quando você executa um comando de plugin , o Atlas CLI lê o arquivo de manifesto, identifica o binário correto e o executa com os argumentos apropriados. O binário do plugin lida com toda a lógica de comando de forma independente.
Pré-requisitos
Antes de começar, verifique se você tem o seguinte instalado:
O Atlas CLI.Consulte Instalar ou Atualizar o Atlas CLI.
Criar seu primeiro plugin
Revise o arquivo de manifesto.
Abra o manifest.template.yml para ver a configuração do plugin :
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 define o arquivo de manifesto do plugin-in. O manifesto informa à Atlas CLI quais comandos o plugin-in fornece e qual binário executar.
Revise o código do plugin-in .
Abra o cmd/plugin/main.go para ver a implementação do plugin :
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) } }
O plugin utiliza Cobra para definir comandos. Quando o Atlas CLI executa o plugin, ele passa o nome do comando e os argumentos para o binário.
Crie e instale o plugin-in.
A partir da raiz do repositório, crie o binário do plugin-in e gere o arquivo de manifesto:
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
Crie o diretório do plugin e copie os arquivos. O diretório de plugin padrão depende do seu sistema operacional:
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/"
Personalizar plug-in
Para criar seu próprio plugin-in, modifique o exemplo ou comece do zero:
Atualize
manifest.template.ymlcom o nome, descrição e comandos do seu plugin.Implemente sua lógica de comando no Go (ou em qualquer linguagem que seja compilada para um binário autônomo ).
Certifique-se de que seu nome binário corresponda ao campo
binaryemmanifest.template.yml.
Importante
Os nomes de comando em seu manifesto não devem conflitar com os comandos existentes do Atlas CLI ou com os comandos de outros plugins instalados.
Distribuir seu plug-in
Para distribuir seu plugin para que outros possam instalá-lo com o comando atlas plugin install, siga estas etapas:
Hospede seu plugin em um repositório do GitHub.
Use o GoReleaser ou uma ferramenta semelhante para criar versões do GitHub com binários compilados para várias plataformas. O repositório de exemplo inclui uma
.goreleaser.yamlconfiguração do e um fluxo de trabalho do GitHub Actions para versões automatizadas.Crie uma tag de versão após a versão semântica (por
v1.0.0exemplo,).
Depois de criar uma versão do GitHub, os usuários podem instalar seu plugin-in:
atlas plugin install <github-owner>/<repository-name>
Use uma linguagem de programação diferente
Embora recomendamos o Go with Cobra, você pode escrever plugins em qualquer linguagem que se compile para um binário executável autônomo . Para obter um exemplo de um plugin-in escrito em uma linguagem diferente, consulte o exemplo de repositório de plugin Rust no GitHub.
Seu plugin deve atender aos seguintes requisitos:
Seu binário deve aceitar o nome do comando como o primeiro argumento.
Seu binário deve ser um executável autônomo (sem dependências externas de tempo de execução).
O campo
binaryemmanifest.ymldeve corresponder ao nome do arquivo binário.
Saiba mais
atlas plugin - Manage Atlas CLI plugins.
atlas plugin install - Install a plugin.
atlas plugin update - Update a plugin.
atlas plugin uninstall - Uninstall a plugin.