Fondamentaux de Cobra
Commande racine, Run, Args et génération de l’aide
Fondamentaux de Cobra est une leçon Go Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Go Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Go Academy comprend 4 leçons au total.
Qu’est-ce que Cobra ?
Cobra est la bibliothèque Go la plus populaire pour créer des applications CLI. Elle fournit des commandes, des options, des sous-commandes, la génération de l’aide, la complétion de l’interpréteur et la validation des arguments.
Installer Cobra
Ajoutez cobra comme dépendance et utilisez éventuellement le générateur CLI :
go get github.com/spf13/cobra
// Optional: cobra-cli for scaffolding
go install github.com/spf13/cobra-cli@latest
cobra-cli init myappCommande racine
Toute application Cobra possède une commande racine. Définissez-la avec Use, une description Short et une fonction Run :
var rootCmd = &cobra.Command{
Use: "myapp",
Short: "My awesome CLI",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("Hello from root!")
},
}
func main() { rootCmd.Execute() }Structure cobra.Command
Champs essentiels : Use (nom et synopsis de la commande), Short (description sur une ligne), Long (aide détaillée), Run (exécute la commande), RunE (renvoie une erreur).
RunE pour propager les erreurs
Utilisez RunE au lieu de Run pour renvoyer les erreurs. Cobra affiche automatiquement l’erreur et quitte avec un code différent de zéro.
var rootCmd = &cobra.Command{
RunE: func(cmd *cobra.Command, args []string) error {
return doWork()
},
}Ajouter des sous-commandes
Créez les sous-commandes sous forme de valeurs cobra.Command distinctes et ajoutez-les à la commande racine avec AddCommand :
var serveCmd = &cobra.Command{
Use: "serve",
Short: "Start the server",
RunE: runServe,
}
func init() { rootCmd.AddCommand(serveCmd) }Structure d’un projet Cobra
Organisation conventionnelle : un répertoire cmd/ contenant un fichier par sous-commande, ainsi que root.go. main.go appelle uniquement cmd.Execute().
cmd/
root.go // rootCmd definition
serve.go // serveCmd
migrate.go // migrateCmd
main.goValidation des arguments
Utilisez des validateurs intégrés comme cobra.ExactArgs et MinimumNArgs, ou une fonction ValidArgsFunction personnalisée :
var cmd = &cobra.Command{
Args: cobra.ExactArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
fmt.Println(args[0], args[1])
return nil
},
}Aide générée automatiquement
Cobra génère automatiquement --help / -h pour chaque commande ainsi qu’une sous-commande help. Le texte provient de Use, Short, Long et des options.
Complétion de l’interpréteur
Cobra génère directement des scripts de complétion pour bash, zsh, fish et PowerShell via rootCmd.GenBashCompletion ou la sous-commande intégrée completion.
Intégration de Viper
Associez Cobra à Viper pour gérer la configuration : les options définies avec Cobra sont liées aux clés Viper, afin que leurs valeurs puissent provenir des options, des variables d’environnement ou des fichiers de configuration.
Vérification rapide
Quelle est la différence entre cobra.Command.Run et RunE ?
Récapitulatif : notions fondamentales de Cobra
Points essentiels :
- cobra.Command avec Use/Short/RunE constitue le composant de base
- rootCmd.AddCommand(subCmd) permet d’imbriquer les commandes de façon hiérarchique
- cobra.ExactArgs/MinimumNArgs permettent de valider les arguments
- L’aide et la complétion sont générées automatiquement
Questions Fréquemment Posées
La leçon « Fondamentaux de Cobra » est-elle gratuite ?
Oui — le texte complet de « Fondamentaux de Cobra » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Go Academy, passe à CoddyKit PRO. Le cours Go Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fondamentaux de Cobra » ?
Commande racine, Run, Args et génération de l’aide Tu pratiques Go Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Go Academy ?
Aucune expérience préalable n'est requise. Go Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Fondamentaux de Cobra » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Go Academy ?
Oui. Chaque leçon Go Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fondamentaux de Cobra
- Options et options persistantes
- Sous-commandes et groupes de commandes
- Distribuer des outils CLI