@@ -4,20 +4,19 @@ const fs = require("fs");
44const path = require ( "path" ) ;
55
66function listDirectory ( dir , options ) {
7+ let stats ;
78 try {
8- const stats = fs . statSync ( dir ) ;
9-
9+ stats = fs . statSync ( dir ) ;
1010 if ( stats . isFile ( ) ) {
1111 console . log ( dir ) ;
12- return ;
12+ return ;
1313 }
1414 } catch ( e ) {
1515 console . error ( `ls: cannot access '${ dir } ': No such file or directory` ) ;
1616 return ;
1717 }
1818
1919 let entries ;
20-
2120 try {
2221 entries = fs . readdirSync ( dir , { withFileTypes : true } ) ;
2322 } catch ( e ) {
@@ -34,18 +33,21 @@ function listDirectory(dir, options) {
3433 }
3534
3635 names . sort ( ) ;
37- names . forEach ( name => console . log ( name ) ) ;
36+ if ( options . one ) {
37+ names . forEach ( name => console . log ( name ) ) ;
38+ } else {
39+ console . log ( names . join ( " " ) ) ;
40+ }
3841}
3942
4043program
4144 . name ( "myls" )
4245 . description ( "Custom implementation of ls" )
43- . option ( "-1" , "list one file per line (required)" )
44-
45- . option ( "-a, --all" , "include hidden files" )
46+ . option ( "-1, --one" , "list one file per line " )
47+ . option ( "-a, --all" , "include hidden files and . and .." )
4648 . argument ( "[dir]" , "directory to list" , "." )
4749 . action ( ( dir , options ) => {
4850 listDirectory ( dir , options ) ;
4951 } ) ;
5052
51- program . parse ( ) ;
53+ program . parse ( ) ;
0 commit comments