Как извлечь зарегистрированную информацию?
Я использую кобру с моим приложением Golang. Как я могу получить список команд и значений, которые я зарегистрировал в Cobra.
Если я добавлю команду root, а затем команду DisplayName.
var Name = "sample_"
var rootCmd = &cobra.Command{Use: "Use help to find out more options"}
rootCmd.AddCommand(cmd.DisplayNameCommand(Name))
Смогу ли я узнать, каково значение имени в моей программе, с помощью какой-нибудь функции Cobra? В идеале я хочу получить доступ к этому значению в Name и использовать его для проверки логики.
1 ответ
Вы можете использовать значение, хранящееся в Name
переменная для выполнения операций в вашей программе. Пример использования кобры:
var Name = "sample_"
var rootCmd = &cobra.Command{
Use: "hello",
Short: "Example short description",
Run: func(cmd *cobra.Command, args []string) {
// Do Stuff Here
},
}
var echoCmd = &cobra.Command{
Use: "echo",
Short: "Echo description",
Run: func(cmd *cobra.Command, args []string) {
fmt.Printf("hello %s", Name)
},
}
func init() {
rootCmd.AddCommand(echoCmd)
}
func Execute() {
if err := rootCmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}
`
В приведенном выше коде вы можете видеть, что hello
это команда root и echo
это подкоманда Если вы делаете hello echo
, это будет повторять значение sample_
который хранится в Name
переменная.
Вы также можете сделать что-то вроде этого:
var echoCmd = &cobra.Command{
Use: "echo",
Short: "Echo description",
Run: func(cmd *cobra.Command, args []string) {
// Perform some logical operations
if Name == "sample_" {
fmt.Printf("hello %s", Name)
} else {
fmt.Println("Name did not match")
}
},
}
Чтобы узнать больше о том, как использовать кобру, вы также можете просмотреть мой проект по ссылке ниже.
https://github.com/bharath-srinivas/nephele
Надеюсь это поможет.