12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- var common = require('./common');
- var fs = require('fs');
-
- //@
- //@ ### cat(file [, file ...])
- //@ ### cat(file_array)
- //@
- //@ Examples:
- //@
- //@ ```javascript
- //@ var str = cat('file*.txt');
- //@ var str = cat('file1', 'file2');
- //@ var str = cat(['file1', 'file2']); // same as above
- //@ ```
- //@
- //@ Returns a string containing the given file, or a concatenated string
- //@ containing the files if more than one file is given (a new line character is
- //@ introduced between each file). Wildcard `*` accepted.
- function _cat(options, files) {
- var cat = '';
-
- if (!files)
- common.error('no paths given');
-
- if (typeof files === 'string')
- files = [].slice.call(arguments, 1);
- // if it's array leave it as it is
-
- files = common.expand(files);
-
- files.forEach(function(file) {
- if (!fs.existsSync(file))
- common.error('no such file or directory: ' + file);
-
- cat += fs.readFileSync(file, 'utf8') + '\n';
- });
-
- if (cat[cat.length-1] === '\n')
- cat = cat.substring(0, cat.length-1);
-
- return common.ShellString(cat);
- }
- module.exports = _cat;
|