diff --git a/kitchenradio/node_modules/simple-grep/README.md b/kitchenradio/node_modules/simple-grep/README.md new file mode 100644 index 0000000..55be0e3 --- /dev/null +++ b/kitchenradio/node_modules/simple-grep/README.md @@ -0,0 +1,33 @@ +#A Simpler Grep +easy grepping in node.js + +##How to get it +``` +npm install simple-grep +``` +##How to use it +``` +var grep = require('simple-grep'); +grep('search string', 'a directory or file', function(list){ + console.log(list); +}); +``` +Output +``` +[ + { + file: filename, + results: [ + {line_number: 'n', line: 'text'}, + {line_number: 'n', line: 'text'} + ] + }, + { + file: filename, + results: [ + {line_number: 'n', line: 'text'}, + {line_number: 'n', line: 'text'} + ] + } +] +``` \ No newline at end of file diff --git a/kitchenradio/node_modules/simple-grep/package.json b/kitchenradio/node_modules/simple-grep/package.json new file mode 100644 index 0000000..3348c60 --- /dev/null +++ b/kitchenradio/node_modules/simple-grep/package.json @@ -0,0 +1,30 @@ +{ + "name": "simple-grep", + "version": "0.0.2", + "description": "easy grep utlity for node.js", + "main": "simple-grep.js", + "repository": { + "type": "git", + "url": "https://github.com/BSteephenson/simple-grep.git" + }, + "keywords": [ + "grep", + "search" + ], + "author": { + "name": "Benjamin Steephenson" + }, + "license": "ISC", + "bugs": { + "url": "https://github.com/BSteephenson/simple-grep/issues" + }, + "homepage": "https://github.com/BSteephenson/simple-grep", + "readme": "#A Simpler Grep\neasy grepping in node.js\n\n##How to get it\n```\nnpm install simple-grep\n```\n##How to use it\n```\nvar grep = require('simple-grep');\ngrep('search string', 'a directory or file', function(list){\n console.log(list);\n});\n```\nOutput\n```\n[\n {\n file: filename, \n results: [\n {line_number: 'n', line: 'text'},\n {line_number: 'n', line: 'text'}\n ]\n },\n {\n file: filename, \n results: [\n {line_number: 'n', line: 'text'},\n {line_number: 'n', line: 'text'}\n ]\n }\n]\n```", + "readmeFilename": "README.md", + "_id": "simple-grep@0.0.2", + "dist": { + "shasum": "979830163d08fc093073b37c494afd5e74ae988d" + }, + "_from": "simple-grep@*", + "_resolved": "https://registry.npmjs.org/simple-grep/-/simple-grep-0.0.2.tgz" +} diff --git a/kitchenradio/node_modules/simple-grep/simple-grep.js b/kitchenradio/node_modules/simple-grep/simple-grep.js new file mode 100644 index 0000000..c1f5e3f --- /dev/null +++ b/kitchenradio/node_modules/simple-grep/simple-grep.js @@ -0,0 +1,39 @@ +var grep = function(what, where, callback){ + var exec = require('child_process').exec; + + exec("grep " + what + " " + where + " -nr", function(err, stdin, stdout){ + var list = {} + + var results = stdin.split('\n'); + + // remove last element (it’s an empty line) + results.pop(); + for (var i = 0; i < results.length; i++) { + var eachPart = results[i].split(':') //file:linenum:line + list[eachPart[0]] = [] + } + for (var i = 0; i < results.length; i++) { + var eachPart = results[i].split(':') //file:linenum:line + var details = {} + var filename = eachPart[0] + details['line_number'] = eachPart[1] + + eachPart.shift() + eachPart.shift() + details['line'] = eachPart.join(':') + + list[filename].push(details) + } + + + var results = [] + var files = Object.keys(list) + for(var i = 0; i < files.length; i++){ + results.push({'file' : files[i], 'results' : list[files[i]]}) + } + + callback(results) + }); +} + +module.exports = grep; \ No newline at end of file