Я сделал несколько уроков в Go и хотел попробовать что-то гораздо более актуальное, что мне понадобится относительно скоро. Я начинаю с того, что смотрю на гадюку и кобру. Я понимаю, что файл конфигурации на самом деле предназначен для использования Viper, а Cobra просто справляется с этим. Тем не менее, я застрял на том, чтобы даже преодолеть эту точку. Я, скорее всего, столкнусь с еще несколькими ошибками, но я застрял на этом, и любая помощь, которую я нахожу, не имеет никакого смысла, чтобы помочь моей проблеме. Таким образом, у меня есть приличный фон в C / C ++. А из чтения амперсанды и звёздочки используются похожим образом. Вот почему у меня проблемы с этим.
func init() {
cobra.OnInitialize(initConfig)
rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $Home/.cobra.yaml)")
rootCmd.PersistentFlags().StringVarP(&projectBase,"projectbase", "b", "", "base project direcoty eg. github.com")
rootCmd.PersistentFlags().StringP("author", "a", "Rutger", "Written by rutger")
rootCmd.PersistentFlags().StringVarP(&userLicense, "license", "l", "", "My license homie")
viper.BindPFlag("author", rootCmd. PersistentFlags().Lookup("author"))
viper.BindPFlag("projectbase", rootCmd.PersistentFlags().Lookup("projectbase"))
viper.BindPFlag("useViper", rootCmd.PersistentFlags().Lookup("viper"))
viper.SetDefault("author", "Rutger Luther <rutger.luther@printtrackerpro.com")
viper.SetDefault("license", "nachos")
}
Это в основном пример, используемый здесь для гадюки и кобры. Go Cobra
Проблема в том, что я получаю эти ошибки.
cmd\root.go:25:40: undefined: projectBase
cmd\root.go:27:40: undefined: userLicense
cmd\root.go:39:15: undefined: homedir
Я делаю вызовы этим впервые, поэтому я не уверен, как они будут иметь какие-либо значения. Я прошу прощения, если это действительно простой вопрос. Но некоторые из этих страниц Go немного сложнее для понимания.