Prise en main des sous-commandes CLI en Go
Le langage de programmation Go offre un moyen puissant et flexible de créer des interfaces en ligne de commande (CLI - Command-Line Interface) grâce à l'utilisation de sous-commandes. Les sous-commandes vous permettent de créer une structure hiérarchique pour votre CLI, facilitant ainsi l'organisation et la gestion d'un ensemble croissant de commandes.
Dans cette section, nous allons explorer les bases de l'utilisation des sous-commandes CLI en Go, notamment comment les définir et les implémenter, ainsi que comment gérer les entrées utilisateur et fournir des informations utiles.
Comprendre les sous-commandes CLI en Go
La bibliothèque standard de Go inclut le package flag
, qui offre un moyen simple et direct de gérer les arguments de la ligne de commande. Cependant, à mesure que votre CLI devient plus complexe, le package flag
peut ne plus suffire. C'est là que les sous-commandes entrent en jeu.
Les sous-commandes vous permettent de regrouper des commandes liées, offrant ainsi une expérience utilisateur plus intuitive et organisée. Par exemple, vous pourriez avoir un outil CLI pour gérer une base de données, avec des sous-commandes telles que create
, delete
, list
et update
.
Implémenter des sous-commandes CLI en Go
Pour implémenter des sous-commandes dans votre CLI Go, vous pouvez utiliser une bibliothèque tierce comme Cobra. Cobra fournit un cadre robuste et flexible pour la création d'applications CLI, avec une prise en charge intégrée des sous-commandes.
Voici un exemple simple de l'utilisation de Cobra pour créer une CLI avec des sous-commandes :
package main
import (
"fmt"
"os"
"github.com/spf13/cobra"
)
func main() {
rootCmd := &cobra.Command{
Use: "mycli",
Short: "A simple CLI with subcommands",
}
createCmd := &cobra.Command{
Use: "create",
Short: "Create a new resource",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("Creating a new resource...")
},
}
deleteCmd := &cobra.Command{
Use: "delete",
Short: "Delete an existing resource",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("Deleting an existing resource...")
},
}
rootCmd.AddCommand(createCmd, deleteCmd)
if err := rootCmd.Execute(); err!= nil {
fmt.Println(err)
os.Exit(1)
}
}
Dans cet exemple, nous définissons une commande racine (mycli
) et deux sous-commandes (create
et delete
). Lorsque l'utilisateur exécute mycli create
, la sous-commande create
est exécutée, et lorsque l'utilisateur exécute mycli delete
, la sous-commande delete
est exécutée.
En utilisant des sous-commandes, vous pouvez offrir une expérience CLI plus intuitive et organisée à vos utilisateurs, leur permettant de découvrir et d'utiliser plus facilement les diverses fonctionnalités de votre application.