coffee-toaster
Version:
Minimalist build system for CoffeeScript.
20 lines (15 loc) • 501 B
text/coffeescript
class Question
ask:(question, format, fn)->
stdin = process.stdin
stdout = process.stdout
stdout.write "#{question} "
stdin.once( 'data', (data)=>
data = data.toString().trim()
if format.test data
fn data.trim()
else
msg = "#{'Invalid entry, it should match:'.red}"
rule = "#{format.toString().cyan}"
stdout.write "\t#{msg} #{rule}\n"
@ask question, format, fn
).resume()