#go #go-cobra #viper-go
#Вперед #go-cobra #viper-go
Вопрос:
Я работаю над приложением на основе Cobra в Go, и для одной из моих команд я определяю такой флаг:
func init() {
myCmd.Flags().StringVarP(amp;project, "project", "p", "defaultProject", "Project name")
}
У меня также есть настроенный Viper в моей корневой команде, который считывает некоторую конфигурацию из файла. Есть ли способ установить значение по умолчанию для флага с помощью Viper? Я пробовал это:
func init() {
myCmd.Flags().StringVarP(amp;project, "project", "p", viper.GetString("project"), "Project name")
}
Но, похоже, это не так, поскольку я получаю пустую строку, если опускаю флаг при вызове команды. Есть идеи? Заранее спасибо!
Комментарии:
1. Можете ли вы использовать метод Viper
SetDefault
? ( github.com/spf13/viper/blob /… )2. Я могу, но здесь это не так. Я хочу, чтобы значение моего флага возвращалось к моему значению конфигурации, если флаг опущен, и когда я вызываю свою команду с
--help
флагом, я хочу видеть значение моей конфигурации в конце строки использования, где написано (по умолчанию «….»)