fix #11458 oswalkdir (#13689)

* fix #11458 oswalkdir

* changelog
This commit is contained in:
Timothee Cour
2020-03-19 02:23:05 -07:00
committed by GitHub
parent ba6e7c6365
commit a17e87b516
2 changed files with 5 additions and 27 deletions

View File

@@ -135,6 +135,7 @@ echo f
- `parseutils.parseUntil` has now a different behaviour if the `until` parameter is
empty. This was required for intuitive behaviour of the strscans module
(see bug #13605).
- `std/oswalkdir` was buggy, it's now deprecated and reuses `std/os` procs
## Language additions

View File

@@ -7,30 +7,7 @@
# 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)
## This module is deprecated, ``import os`` instead.
{.deprecated: "import os.nim instead".}
import os
export PathComponent, walkDir, walkDirRec