Skip to content

Commit 5b61d34

Browse files
committed
refactoring and debuging
1 parent 2f3198f commit 5b61d34

1 file changed

Lines changed: 19 additions & 25 deletions

File tree

  • implement-shell-tools/ls

implement-shell-tools/ls/ls.js

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,25 @@ const arrArgv = process.argv.slice(2);
77
const longFormat = arrArgv.includes("-l");
88
const showHidden = arrArgv.includes("-a");
99

10-
const paths = arrArgv.filter((argv) => !argv.startsWith("-"));
11-
if (paths.length === 0) path = "[.]";
12-
13-
for (let listFile of paths) {
10+
let paths = arrArgv.filter((argv) => !argv.startsWith("-"));
11+
if (paths.length === 0) paths = ["."];
12+
13+
const printWholeList = (stats, name) => {
14+
const permissions = (stats.mode & 0o777).toString(8);
15+
const sizeFile = stats.size;
16+
const owner = stats.uid;
17+
const group = stats.gid;
18+
const timeMod = stats.mtime.toLocaleString();
19+
20+
console.log(
21+
`${permissions}, ${owner}, ${group}, ${sizeFile}, ${timeMod}, ${name}`
22+
);
23+
};
24+
for (const listFile of paths) {
1425
const status = await fs.stat(listFile);
15-
1626
if (status.isFile()) {
17-
const permissions = (status.mode & 0o777).toString(8);
18-
const sizeFile = status.size;
19-
const owner = status.uid;
20-
const group = status.gid;
21-
const timeMod = status.mtime.toLocaleString();
22-
2327
if (longFormat) {
24-
console.log(
25-
`${permissions}, ${owner}, ${group}, ${sizeFile}, ${timeMod}, ${listFile}`
26-
);
28+
printWholeList(status, listFile);
2729
} else {
2830
console.log(listFile);
2931
}
@@ -34,20 +36,12 @@ for (let listFile of paths) {
3436
files = files.filter((file) => !file.name.startsWith("."));
3537
}
3638

37-
for (let file of files) {
39+
for (const file of files) {
3840
const wholePath = path.join(listFile, file.name);
39-
const statusFile = await fs.stat(wholePath);
40-
41-
const permissions = (statusFile.mode & 0o777).toString(8);
42-
const sizeFile = statusFile.size;
43-
const owner = statusFile.uid;
44-
const group = statusFile.gid;
45-
const timeMod = statusFile.mtime.toLocaleString();
4641

4742
if (longFormat) {
48-
console.log(
49-
`${permissions}, ${owner}, ${group}, ${sizeFile}, ${timeMod}, ${file.name}`
50-
);
43+
const statusFile = await fs.stat(wholePath);
44+
printWholeList(statusFile, file.name);
5145
} else {
5246
console.log(file.name);
5347
}

0 commit comments

Comments
 (0)