La interfaz de línea de comandos de Atlas admite complementos que permiten ampliar su funcionalidad con comandos personalizados. Puedes desarrollar complementos en cualquier lenguaje de programación que compile a un binario independiente.
Este tutorial te guía a través de la creación de tu primer complemento de Atlas CLI usando Goy la biblioteca Cobra.
Para obtener más información sobre cómo instalar y administrar los complementos existentes, consulte atlas plugin.
Cómo funcionan los plugins
Cada complemento de Atlas CLI consta de dos componentes:
A
manifest.ymlarchivo que describe el complemento y sus comandosUn binario ejecutable que la CLI de Atlas invoca cuando un usuario ejecuta un comando de complemento.
Al ejecutar un comando de complemento, la CLI de Atlas lee el archivo de manifiesto, identifica el binario correcto y lo ejecuta con los argumentos apropiados. El binario del complemento gestiona toda la lógica del comando de forma independiente.
Requisitos previos
Antes de comenzar, asegúrese de tener instalado lo siguiente:
Ir. 1 21 o posterior
La interfaz de línea de comandos(CLI) de Atlas. Consulte Instalar o actualizar la CLI de Atlas.
Crea tu primer plugin
Revise el archivo de manifiesto.
Abra manifest.template.yml para ver la configuración del complemento:
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 el archivo de manifiesto para el complemento. El manifiesto le indica a la CLI de Atlas qué comandos proporciona el complemento y qué binario ejecutar.
Revisa el código del plugin.
Abra cmd/plugin/main.go para ver la implementación del complemento:
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) } }
El complemento utiliza Cobra para definir comandos. Cuando la interfaz de línea de comandos de Atlas ejecuta el complemento, pasa el nombre del comando y los argumentos al binario.
Compila e instala el plugin.
Desde la raíz del repositorio, compile el binario del complemento y genere el archivo de manifiesto:
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
Crea el directorio del plugin y copia los archivos. El directorio predeterminado del plugin depende de tu sistema operativo:
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/"
Personaliza tu plugin
Para crear tu propio plugin, modifica el ejemplo o empieza desde cero:
Actualiza
manifest.template.ymlcon el nombre, la descripción y los comandos de tu plugin.Implementa la lógica de tus comandos en Go (o en cualquier lenguaje que compile a un binario independiente).
Asegúrese de que el nombre de su binario coincida con el campo
binaryenmanifest.template.yml.
Importante
Los nombres de los comandos en su manifiesto no deben entrar en conflicto con los comandos existentes de Atlas CLI ni con los comandos de otros complementos instalados.
Distribuye tu plugin
Para distribuir tu plugin de forma que otros puedan instalarlo con el comando atlas plugin install, sigue estos pasos:
Aloja tu plugin en un repositorio de GitHub.
Utilice GoReleaser o una herramienta similar para crear versiones de GitHub con binarios compilados para múltiples plataformas. El repositorio de ejemplo incluye una
.goreleaser.yamlconfiguración y un flujo de trabajo de GitHub Actions para la automatización de versiones.Cree una etiqueta de lanzamiento siguiendo el versionado semántico (por ejemplo,).
v1.0.0
Después de crear una versión en GitHub, los usuarios podrán instalar tu complemento:
atlas plugin install <github-owner>/<repository-name>
Utiliza un lenguaje de programación diferente
Aunque recomendamos usar Go con Cobra, puedes escribir complementos en cualquier lenguaje que compile a un binario ejecutable independiente. Para ver un ejemplo de un complemento escrito en otro lenguaje, consulta el repositorio de ejemplos de complementos de Rust en GitHub.
Su complemento debe cumplir los siguientes requisitos:
Su programa binario debe aceptar el nombre del comando como primer argumento.
Su archivo binario debe ser un ejecutable independiente (sin dependencias de tiempo de ejecución externas).
El campo
binaryenmanifest.ymldebe coincidir con el nombre del archivo binario.
Obtén más información
atlas plugin - Manage Atlas CLI plugins.
atlas plugin install - Install a plugin.
atlas plugin update - Update a plugin.
atlas plugin uninstall - Uninstall a plugin.