| 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). |
| function _cat(options, files) { |
| var cat = common.readFromPipe(this); |
| |
| if (!files && !cat) |
| common.error('no paths given'); |
| |
| files = [].slice.call(arguments, 1); |
| |
| files.forEach(function(file) { |
| if (!fs.existsSync(file)) |
| common.error('no such file or directory: ' + file); |
| |
| cat += fs.readFileSync(file, 'utf8'); |
| }); |
| |
| return new common.ShellString(cat, common.state.error, common.state.errorCode); |
| } |
| module.exports = _cat; |