parent
ba6e7c6365
commit
a17e87b516
2 changed files with 5 additions and 27 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue