parent
e687198a3d
commit
80d7f6d1a3
@ -0,0 +1,3 @@ |
|||||||
|
ls |
||||||
|
ls.exe |
||||||
|
*.out |
||||||
@ -0,0 +1,4 @@ |
|||||||
|
|
||||||
|
|
||||||
|
build: |
||||||
|
go build .
|
||||||
@ -0,0 +1,42 @@ |
|||||||
|
package main |
||||||
|
|
||||||
|
import ( |
||||||
|
"fmt" |
||||||
|
"io/fs" |
||||||
|
"path/filepath" |
||||||
|
"flag" |
||||||
|
) |
||||||
|
|
||||||
|
func main() { |
||||||
|
var recurse bool |
||||||
|
|
||||||
|
flag.BoolVar(&recurse, "R", false, "recursive listing") |
||||||
|
flag.Parse() |
||||||
|
|
||||||
|
paths := flag.Args() |
||||||
|
|
||||||
|
if len(paths) == 0 { |
||||||
|
paths = append(paths, ".") |
||||||
|
} |
||||||
|
|
||||||
|
for _, what := range paths { |
||||||
|
if flag.NArg() > 1 { |
||||||
|
fmt.Printf("\n%s:\n", what) |
||||||
|
} |
||||||
|
|
||||||
|
filepath.WalkDir(what, func (path string, d fs.DirEntry, err error) error { |
||||||
|
if path == what { return nil } |
||||||
|
|
||||||
|
if d.IsDir() && recurse { |
||||||
|
fmt.Printf("\n%s:\n", path) |
||||||
|
} else if d.IsDir() { |
||||||
|
fmt.Printf("%s\n", filepath.Base(path)) |
||||||
|
return fs.SkipDir |
||||||
|
} else { |
||||||
|
fmt.Printf("%s\n", filepath.Base(path)) |
||||||
|
} |
||||||
|
|
||||||
|
return nil |
||||||
|
}) |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue