7

基本情報: 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"

どちらの場合も、構成ファイルは見つかりましたが、フラグには期待値ではなくデフォルト値がありました。

フラグを正しく設定するには、どのように構成ファイルを作成する必要がありますか?

4

1 に答える 1