-
Notifications
You must be signed in to change notification settings - Fork 0
/
search.js
128 lines (83 loc) · 1.95 KB
/
search.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
function searchtxt(ext,text){
var walk = require('walk');
var fs = require('fs');
var files = [];
var text = text;
var ext = ext;
// Walker options
var walker = walk.walk(__dirname, { followLinks: false });
walker.on('file', function(root, stat, next) {
// Add this file to the list of files
if(stat.name.split('.').pop() === ext)
{
fs.readFile(root + '/' + stat.name, 'utf8', function(err, contents) {
if(contents.indexOf(text) >= 0){
files.push(root + '/' + stat.name);
}
});
}
//console.log(root);
//files.push(root + '/' + stat.name);
next();
});
walker.on('end', function() {
if(files.length < 1 || files == undefined){
console.log("No files were found");
}
else {
console.log(files);
}
});
}
function searchdocx(ext,text){
var mammoth = require("mammoth");
var walk = require('walk');
var files = [];
var text = text;
var ext = ext;
// Walker options
var walker = walk.walk(__dirname, { followLinks: false });
walker.on('file', function(root, stat, next) {
// Add this file to the list of files
if(stat.name.split('.').pop() === ext)
{
mammoth.extractRawText({path: root + '/' + stat.name})
.then(function(result){
var strings = result.value; // The raw text
if(strings.indexOf(text) >= 0){
files.push(root + '/' + stat.name);
}
})
}
next();
});
walker.on('end', function() {
if(files.length < 1 || files == undefined){
console.log("No files were found");
}
else {
console.log(files);
}
});
}
function Main(){
var ext = process.argv[2];
var text = process.argv[3];
if(ext == undefined || text == undefined)
{
console.log("Usage: node search.js [EXT] [TEXT]");
}
else if (ext === "txt")
{
searchtxt(ext,text);
}
else if(ext === "docx")
{
searchdocx(ext,text);
}
else
{
console.log("Unsupported Extension")
}
}
Main();