Automate command line programs. Like UNIX expect.
Have you ever heard of the command line program expect? Basically,
expect allows you to automate command line programs.
suppose is a programmable Node.js module that allows the same behavior.
From the expect wikipedia page, you can see many examples of
expect scripts automating tasks such as
ftp sessions. Now you can easily write Node.js scripts to do the same. This may be most beneficial during testing.
npm install suppose
Automate the command
npm init, which initializes a new npm module.
var suppose = require'suppose'fs = require'fs'assert = require'assert'processchdir'/tmp/awesome';fswriteFileSync'/tmp/awesome/README.md' 'READ IT'// debug is an optional writeable output streamsuppose'npm' 'init' debug: fscreateWriteStream'/tmp/debug.txt'when/name\: \([\w|\-]+\)[\s]*/respond'awesome_package\n'when'version: (1.0.0) 'respond'0.0.1\n'// response can also be the second argument to .whenwhen'description: ' "It's an awesome package man!\n"when'entry point: (index.js) 'respond"\n"when'test command: 'respond'npm test\n'when'git repository: 'respond"\n"when'keywords: 'respond'awesome, cool\n'when'author: 'respond'JP Richardson\n'when'license: (ISC) 'respond'MIT\n'when'ok? (yes) ' respond'yes\n'on'error'console.logerrmessage;endvar packageFile = '/tmp/awesome/package.json';fsreadFilepackageFilevar packageObj = JSONparsedatatoString;console.logpackageObjname; //'awesome_package'
.respond() may be called any number of times after
.when(). Each response
will be sent in the order defined when the condition matches. Once all
conditions and responses are defined, call
.end() to begin execution.
Copyright 2012-2013, JP Richardson