Path handling utilities for Nim. Strictly typed code in order to avoid the never ending time sink in getting path handling right.
Types
AbsoluteDir = distinct string
- Source Edit
 AbsoluteFile = distinct string
- Source Edit
 RelativeDir = distinct string
- Source Edit
 RelativeFile = distinct string
- Source Edit
 
Procs
proc `/`(base: AbsoluteDir; f: RelativeDir): AbsoluteDir {....raises: [OSError], tags: [].}
- Source Edit
 proc `/`(base: AbsoluteDir; f: RelativeFile): AbsoluteFile {....raises: [OSError], tags: [].}
- Source Edit
 proc addFileExt(x: AbsoluteFile; ext: string): AbsoluteFile {.borrow, ...raises: [], tags: [].}
- Source Edit
 proc addFileExt(x: RelativeFile; ext: string): RelativeFile {.borrow, ...raises: [], tags: [].}
- Source Edit
 proc changeFileExt(x: AbsoluteFile; ext: string): AbsoluteFile {.borrow, ...raises: [], tags: [].}
- Source Edit
 proc changeFileExt(x: RelativeFile; ext: string): RelativeFile {.borrow, ...raises: [], tags: [].}
- Source Edit
 proc cmpPaths(x, y: AbsoluteDir): int {.borrow, ...raises: [], tags: [].}
- Source Edit
 proc copyFile(source, dest: AbsoluteFile) {....raises: [OSError], tags: [ReadDirEffect, ReadIOEffect, WriteIOEffect].}
- Source Edit
 proc createDir(x: AbsoluteDir) {.borrow, ...raises: [OSError, IOError], tags: [WriteDirEffect, ReadDirEffect].}
- Source Edit
 proc customPath(x: string): string {....raises: [OSError], tags: [].}
- Source Edit
 proc dirExists(x: AbsoluteDir): bool {.borrow, ...raises: [], tags: [ReadDirEffect].}
- Source Edit
 proc extractFilename(x: AbsoluteFile): string {.borrow, ...raises: [], tags: [].}
- Source Edit
 proc fileExists(x: AbsoluteFile): bool {.borrow, ...raises: [], tags: [ReadDirEffect].}
- Source Edit
 proc quoteShell(x: AbsoluteDir): string {.borrow, ...raises: [], tags: [].}
- Source Edit
 proc quoteShell(x: AbsoluteFile): string {.borrow, ...raises: [], tags: [].}
- Source Edit
 proc relativeTo(fullPath: AbsoluteFile; baseFilename: AbsoluteDir; sep = DirSep): RelativeFile {. ...raises: [Exception], tags: [RootEffect].}
- Source Edit
 proc removeFile(x: AbsoluteFile) {.borrow, ...raises: [OSError], tags: [WriteDirEffect].}
- Source Edit
 proc splitFile(x: AbsoluteFile): tuple[dir: AbsoluteDir, name, ext: string] {. ...raises: [], tags: [].}
- Source Edit
 proc toAbsolute(file: string; base: AbsoluteDir): AbsoluteFile {. ...raises: [OSError], tags: [].}
- Source Edit
 proc toAbsoluteDir(path: string): AbsoluteDir {....raises: [OSError], tags: [].}
- Source Edit
 proc writeFile(x: AbsoluteFile; content: string) {.borrow, ...raises: [IOError], tags: [WriteIOEffect].}
- Source Edit