$ npm install read-input
Write CLI utilities that take a stream of data either stdin from one of more files. To be able to handle this:
$ yourutil file.txt
$ yourutil file1.txt file2.txt
$ yourutil < file.txt
$ cat file.txt | yourutil
Just do this:
#!/usr/bin/env node
var read = require('read-input');
var fnames = process.argv.slice(2);
read(fnames, function (err, res) {
// `err` will be given if at least one of the files fail.
if (err) {
console.error(err.message);
process.exit(8);
}
res.data /* => "..." */
});
read(files, function(err, res) { ... })
Reads from files. If no files are given, read from stdin.
The result res
is a result object. If any of the files can't be
read, err
will be an error object.
var read = require('read-input');
var fnames = process.argv.slice(2); //=> ['readme.txt']
read(fnames).then(function (res) {
res.data // '...'
res.error // undefined or Error()
res.stdin // true or false
res.files // [...]
res.successes // [...]
res.failures // [...]
}).catch(function (err) {
// stdin error
});
To support older versions of Node.js without Promises, you can use callbacks:
read(fname, function (err, res) {
});
You can also iterate through res.files
.
read(fnames).then(function(res) {
res.files.forEach(function (f) {
f.data // ...
f.error // undefined or Error(...)
f.stdin // true or false
f.name // 'readme.txt'
}
});
If files
is a blank array (or null), data will be read from stdin. The
resulting data will have a similar schema.
read([]).then(fucntion (res) {
...
});
read.stdin(fn)
Read data from standard input. This will not throw errors.
read.stdin().then(function (data) {
console.log(data); // string
});
read.stdin(function (err, data) {
...
});
The results value is an object passed to the callback of read()
.
data
(String) — a concatenation of all data in all the files.error
(Error) — The first error in all files. undefined
if successful.stdin
(Boolean) — is true
if the file is read from stdinfiles
(Array) — A list of files.failures
(Array) — A list of files that failed.successes
(Array) — A list of files that succeeded.The files
, failures
and successes
are lists of files. Each of the items in these lists
has a similar list of values:
data
(String) — File dataerror
(Error) — the first error encountered, if applicablestdin
(Boolean) — is true
if the file is read from stdinname
(String) — File nameThere's also error.result
which refers to the result object.
See read() for an example.
read-input © 2014+, Rico Sta. Cruz. Released under the MIT License.
Authored and maintained by Rico Sta. Cruz with help from contributors.
ricostacruz.com · GitHub @rstacruz · Twitter @rstacruz
© 2010 - cnpmjs.org x YWFE | Home | YWFE