-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwcat.js
85 lines (81 loc) · 2.25 KB
/
wcat.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
#!/usr/bin/env node
let fs = require("fs");
// input
let inputArr = process.argv.slice(2);
// console.log(inputArr);
// options
let optionsArr = [];
let filesArr = [];
// identify -> options
for (let i = 0; i < inputArr.length; i++) {
let firstChar = inputArr[i].charAt(0);
if (firstChar == "-") {
optionsArr.push(inputArr[i]);
} else {
filesArr.push(inputArr[i]);
}
}
// options check
let isBothPresent = optionsArr.includes("-b") && optionsArr.includes("-n");
if (isBothPresent==true) {
console.log("either enter -n or -b option");
return;
}
// existence
for (let i = 0; i < filesArr.length; i++) {
// /buffer
let isPresent = fs.existsSync(filesArr[i]);
if (isPresent == false) {
console.log(`file ${filesArr[i]} is not present`);
return;
}
}
// read
let content = "";
for (let i = 0; i < filesArr.length; i++) {
// /buffer
let bufferContent = fs.readFileSync(filesArr[i]);
content += bufferContent + "\r\n";
}
// console.log(content)
let contentArr = content.split("\r\n");
// console.log(contentArr);
// -s
let isSPreset = optionsArr.includes("-s");
if (isSPreset == true) {
for (let i = 1; i < contentArr.length; i++) {
if (contentArr[i] == "" && contentArr[i - 1] == "") {
contentArr[i] = null;
} else if (contentArr[i] == "" && contentArr[i - 1] == null) {
contentArr[i] = null;
}
}
let tempArr = [];
for (let i = 0; i < contentArr.length; i++) {
if (contentArr[i] != null) {
tempArr.push(contentArr[i])
}
}
contentArr = tempArr;
}
console.log("`````````````````````")
// console.log(contentArr.join("\n"));
let isNPresent = optionsArr.includes("-n");
if (isNPresent == true) {
for (let i = 0; i < contentArr.length; i++) {
contentArr[i] = `${i + 1} ${contentArr[i]} `;
}
}
// console.log(contentArr.join("\n"));
let isBPresent = optionsArr.includes("-b");
if (isBPresent == true) {
let counter = 1
for (let i = 0; i < contentArr.length; i++) {
if (contentArr[i] != "") {
// contentArr[i] = `${i + 1} ${contentArr[i]} `;
contentArr[i] = `${counter} ${contentArr[i]}`;
counter++;
}
}
}
console.log(contentArr.join("\n"));