Skip to content

Commit 401e0ef

Browse files
Refactor line numbering logic in 'cat' command implementation for improved readability
1 parent 6fd0461 commit 401e0ef

File tree

1 file changed

+6
-4
lines changed
  • implement-shell-tools/cat

1 file changed

+6
-4
lines changed

implement-shell-tools/cat/cat.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ program
2222
// parse command-line file arguments using the process.argv array
2323
program.parse(process.argv);
2424

25+
function printNumberedLine(line, lineNumber) {
26+
console.log(`${lineNumber.toString().padStart(6, ' ')} ${line}`);
27+
return lineNumber + 1;
28+
}
2529

2630
async function newCat(files, numberLines, numberNonBlank) {
2731
let lineNumber = 1;
@@ -43,15 +47,13 @@ async function newCat(files, numberLines, numberNonBlank) {
4347
if (numberNonBlank) {
4448
// check what is left on the line after trimming (truthy = text, falsy = blank)
4549
if (line.trim()) {
46-
console.log(`${lineNumber.toString().padStart(6, ' ')} ${line}`);
47-
lineNumber++
50+
lineNumber = printNumberedLine(line, lineNumber);
4851
} else {
4952
console.log(line)
5053
}
5154
} else if (numberLines) {
5255
// number all lines
53-
console.log(`${lineNumber.toString().padStart(6, ' ')} ${line}`);
54-
lineNumber++
56+
lineNumber = printNumberedLine(line, lineNumber);
5557
} else {
5658
// if neither flag print normally
5759
console.log(line)

0 commit comments

Comments
 (0)