Goでプロンプト簡単に出すやつ書いた
コマンドラインツールを書くときに、プロンプトを出したくなることありますよね?ただ、ちゃんとプロンプトを出すのは案外難しかったりもします。例えば以下の様な要求があるわけです。
- 自動化の妨げになるからターミナルじゃない時はスキップして欲しい
- とにかく簡単にプロンプトを表示させたい
- パスワード入力では入力を隠したい
- 複数の選択肢から上手いこと選択させたい
- 単に(y/n)だけ入力させたい
ということで書いたのがこちら。
https://github.com/Songmu/prompter
以下のように、それぞれの要求を簡単に解決できます。
var twitterID string = prompter.Prompt("Enter your twitter ID", "default")
var passwd string = prompter.Password("Enter your password")
var lang string = prompter.Choose("Which language do you like the most?", []string{"Perl", "Golang", "Scala", "Ruby"}, "Perl")
var likeSushi bool = prompter.YN("Do you like sushi?", true)
var likeBeer bool = prompter.YesNo("Do you like beer?", false)
ターミナルに接続されていない場合には Default
の値が使われるので自動化の妨げにならないという感じです。細かい制御をいろいろやりたい場合には、直接 &prompter.Prompter
を直接作っていろいろやって下さい。
便利だと思うのでよろしくお使い下さい。まだまだ足りない機能もあると思うので、patches welcomeです!