Create json files, prompting for input and evaluating expressions.
First create a json file with embedded expressions:
{
"a": 1 + 2,
"b": prompt('To be or not to be?', '!2b'),
"c": {
"x": prompt(),
"y": tmpdir + "/y/file.txt"
}
}Now run the json file with the command-line tool (or write a script) to generate a valid json file, prompting from the user as necessary:
$ prompter --tmpdir=/tmp simple.json > output.json
To be or not to be?: (!2b)
c.x: 55
$ cat output.json
{
"a": 3,
"b": "!2b",
"c": {
"x": "55",
"y": "/tmp/y/file.txt"
}
}
Like window.prompt(), prompt the user with text and an optional default
value. If text isn't provided, the long key path from the root of the json
document is used.
If cb is specified, use the return value of cb(s) for the string s
obtained from the user.
Fetch a line from the input stream, including a trailing newline.
Every value that resolves to a function in the final output will be executed with
a callback function: fn(cb). Inside the function fn, cb(err, value) should
be called to give the new value or abort the transaction.
var prompter = require('prompter')Evaluate the string source src under some optional context, calling
cb(err, output) with the completed file contents.
Control the delimiter by passing in a value for context.delim, which defaults
to ': '.
Returns a readable/writable stream that should be pipe into and out of a user's stdin/stdout.
Usage: prompter {variables} [infile] [outfile]
To install the library, with npm do:
npm install prompter
or to get the command-line tool, do:
npm install -g prompter
MIT
