現在、予想される設定値を定義し、値の設定ファイルを読み込み、最終的には設定ファイルに指定されていない値があるかどうかを確認するスクリプトを使用しています。ルビーのユーザー入力とパイプ入力を併用する
例期待される設定項目:
username password command directories
例のコンフィギュレーションファイル:
username:bob
command:"rm -rf/&& echo bwahahahahaha"
例プロンプト:
password? userinput
directories? userinput
問題の核心ではなく、すべての設定項目が知られているということです実行時の前に実行され、テキストファイルや別のプログラムの出力からパイプインすることができますが、 (プロンプトをトリガーする)構成項目にまだギャップが残っている可能性があります。
[host]$ parametergeneratingscript.rb | paramaterreceivingscript.rb # still needs to prompt for password
IO#ttyを使用していますか?私はパイプ入力を検出し、STDINから適切に読むことができますが、これはユーザープロンプト(これもSTDINから来ています)全体を歩いています。私は設定/プロンプトスキームの周りを快適に変更していますが、逃げる前に、ttyとパイプ入力の間でSTDINのソースを「切り替える」グレースフルな方法があるのだろうかと疑問に思っていましたか?
実際に問題を回避するように設計されました.Piped input reqが削除されたため、OptionParser/Highlineが最適なソリューションになりましたが、最初の質問には答えません。入力をありがとう、私はテストするために数分を取得するときにこの提案を与える必要があります。 – vengeance