forked from CodeYourFuture/Module-Tools
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcat.js
More file actions
34 lines (27 loc) · 794 Bytes
/
cat.js
File metadata and controls
34 lines (27 loc) · 794 Bytes
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
const fs = require("fs");
const args = process.argv.slice(2);
const showLineNumbers = args.includes("-n");
const numberNonEmptyLines = args.includes("-b");
const files = args.filter(arg => arg !== "-n" && arg !== "-b");
for (const file of files) {
const content = fs.readFileSync(file, "utf8");
if (numberNonEmptyLines) {
const lines = content.split("\n");
let lineNumber = 1;
lines.forEach((line) => {
if (line.trim() !== "") {
console.log(`${lineNumber} ${line}`);
lineNumber++;
} else {
console.log(line);
}
});
} else if (showLineNumbers) {
const lines = content.split("\n");
lines.forEach((line, index) => {
console.log(`${index + 1} ${line}`);
});
} else {
process.stdout.write(content);
}
}