forked from enviPath/enviPy
Current Dev State
This commit is contained in:
67
static/js/ketcher2/node_modules/shelljs/src/grep.js
generated
vendored
Normal file
67
static/js/ketcher2/node_modules/shelljs/src/grep.js
generated
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
var common = require('./common');
|
||||
var fs = require('fs');
|
||||
|
||||
common.register('grep', _grep, {
|
||||
globStart: 2, // don't glob-expand the regex
|
||||
canReceivePipe: true,
|
||||
cmdOptions: {
|
||||
'v': 'inverse',
|
||||
'l': 'nameOnly',
|
||||
},
|
||||
});
|
||||
|
||||
//@
|
||||
//@ ### grep([options,] regex_filter, file [, file ...])
|
||||
//@ ### grep([options,] regex_filter, file_array)
|
||||
//@ Available options:
|
||||
//@
|
||||
//@ + `-v`: Inverse the sense of the regex and print the lines not matching the criteria.
|
||||
//@ + `-l`: Print only filenames of matching files
|
||||
//@
|
||||
//@ Examples:
|
||||
//@
|
||||
//@ ```javascript
|
||||
//@ grep('-v', 'GLOBAL_VARIABLE', '*.js');
|
||||
//@ grep('GLOBAL_VARIABLE', '*.js');
|
||||
//@ ```
|
||||
//@
|
||||
//@ Reads input string from given files and returns a string containing all lines of the
|
||||
//@ file that match the given `regex_filter`.
|
||||
function _grep(options, regex, files) {
|
||||
// Check if this is coming from a pipe
|
||||
var pipe = common.readFromPipe();
|
||||
|
||||
if (!files && !pipe) common.error('no paths given', 2);
|
||||
|
||||
files = [].slice.call(arguments, 2);
|
||||
|
||||
if (pipe) {
|
||||
files.unshift('-');
|
||||
}
|
||||
|
||||
var grep = [];
|
||||
files.forEach(function (file) {
|
||||
if (!fs.existsSync(file) && file !== '-') {
|
||||
common.error('no such file or directory: ' + file, 2, { continue: true });
|
||||
return;
|
||||
}
|
||||
|
||||
var contents = file === '-' ? pipe : fs.readFileSync(file, 'utf8');
|
||||
var lines = contents.split(/\r*\n/);
|
||||
if (options.nameOnly) {
|
||||
if (contents.match(regex)) {
|
||||
grep.push(file);
|
||||
}
|
||||
} else {
|
||||
lines.forEach(function (line) {
|
||||
var matched = line.match(regex);
|
||||
if ((options.inverse && !matched) || (!options.inverse && matched)) {
|
||||
grep.push(line);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return grep.join('\n') + '\n';
|
||||
}
|
||||
module.exports = _grep;
|
||||
Reference in New Issue
Block a user