問題タブ [go-cobra]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
453 参照

go - 省略形フラグとして扱われる負の整数を防ぐ方法

負の整数を含むコマンド ライン引数を解析する必要があります。最適なライブラリは spf13/cobra です。

残念ながら、cobra-1は、もちろん定義されていない省略形のフラグであると考えています。

私は-1同じ結果で一重引用符と二重引用符を試しました。フラグの代わりに引数としてコブラに負の整数を残すにはどうすればよいですか?

0 投票する
1 に答える
2942 参照

go - Cobra コマンドライン ツールで、異なるフラグに同じ変数を使用する方法は?

この Cobra アプリの例https://github.com/kurtpeek/myCobraAppには、次のコマンドで Cobra ジェネレーターを使用してスキャフォールディングされた Cobra アプリが含まれています。

ディレクトリ構造は

ではconfig.go、文字列変数deviceUUIDが定義され、そのコマンドのデフォルト値のフラグにバインドされます"configDeviceUUID"

同様にserve.godeviceUUID変数はローカル フラグにバインドされます。

問題は、コマンド ラインでフラグconfigを指定せずにコマンドを実行すると、コマンドからデフォルト値が取得されることです。deviceUUIDserve

起こっているように見えるのはinit()、各ファイルの関数がアルファベット順に実行され、最後に実行された関数がフラグのデフォルト値を設定することです。

この動作を回避するにはどうすればよいですか? config.go設定されたデフォルト値が常にコマンドに適用されるようにしたいと思いますconfigconfigDeviceUUID(もちろん、 と のように個別の変数を宣言することもできますserveDeviceUUIDが、これは少し面倒に思えます)。

0 投票する
0 に答える
606 参照

go - cobra コマンドから別のコマンドに変数を渡す

私は、ブロックチェーン p2p ノードを起動する Go アプリに取り組んでいます。今のところ、ユーザーは手動で p2p ノードを開始し、ターミナル経由でデータを送信する必要があります。REST経由でブロックチェーンからデータを追加/読み取るためにHTTPサーバーを追加しようとしています。問題は、私が Cobra CLI を使用して p2p ノードの開始を処理しているため、別のコマンドを追加して go-gin HTTP サーバーを開始することです。最初の p2p ノードを開始すると、ブロックチェーンへの参照が返されます。その参照を http サーバーを開始する関数に渡すのに苦労しています。

構造体:

p2p ノードを開始する Cobra コマンド

HTTP サーバーの開始

問題は、変数ncを最初のコマンドから 2 番目のコマンドに渡すことです。メソッド内Init()なので返せないので、最初のコマンドのパッケージでグローバル変数を作成して、2番目のコマンドのパッケージからアクセスしてみましたが、いつもnilで、理由がわかりません(おそらくスコープの問題)。

2 つのコマンドを 1 つのコマンドに混ぜて (p2p ノードと http サーバーを起動)、go ルーチンとチャネルを使用して を渡してみましncたが、go ルーチンはバックグラウンドで実行され、p2p ノードの起動にはユーザーの対話が必要なため、問題が発生しました。

これを達成するためのより良い/スムーズな方法はありますか?