123456789101112131415161718192021222324252627282930313233343536 |
- #
- #
- # Nim's Runtime Library
- # (c) Copyright 2015 Andreas Rumpf
- #
- # See the file "copying.txt", included in this
- # distribution, for details about the copyright.
- #
- ## Compile-time only version for walkDir if you need it at compile-time
- ## for JavaScript.
- type
- PathComponent* = enum ## Enumeration specifying a path component.
- pcFile, ## path refers to a file
- pcLinkToFile, ## path refers to a symbolic link to a file
- pcDir, ## path refers to a directory
- pcLinkToDir ## path refers to a symbolic link to a directory
- proc staticWalkDir(dir: string; relative: bool): seq[
- tuple[kind: PathComponent, path: string]] =
- discard
- iterator walkDir*(dir: string; relative=false): tuple[kind: PathComponent, path: string] =
- for k, v in items(staticWalkDir(dir, relative)):
- yield (k, v)
- iterator walkDirRec*(dir: string, filter={pcFile, pcDir}): string =
- var stack = @[dir]
- while stack.len > 0:
- for k,p in walkDir(stack.pop()):
- if k in filter:
- case k
- of pcFile, pcLinkToFile: yield p
- of pcDir, pcLinkToDir: stack.add(p)
|