基本情報: Go アプリケーションを作成し、Cobra を使用しました。Cobra は、コマンド ライン パラメーターとフラグに Viper を使用します。
フラグ bind を使用してリッスンするコマンドがあり、yaml ファイルで構成したいと考えています。
コード:
listen コマンドの init 関数は次のようになります。
func init() {
RootCmd.AddCommand(listenCmd)
listenCmd.Flags().StringP("bind", "b", ":50051", "Provide bind definition")
viper.BindPFlag("bind", listenCmd.Flags().Lookup("bind"))
}
私のアプリケーションのコードはhttps://github.com/sascha-andres/go-logsinkにあります
問題:
listen --bind "bla"
フラグを正しく設定してアプリを呼び出すとbla
、ホームディレクトリにある YAML ファイルを使用してこれを実現する方法が見つかりませんでした。
試した設定ファイル:
---
connect:
bind: "bla"
と
---
bind: "bla"
どちらの場合も、構成ファイルは見つかりましたが、フラグには期待値ではなくデフォルト値がありました。
フラグを正しく設定するには、どのように構成ファイルを作成する必要がありますか?