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; |