mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-06 07:38:24 +00:00
Add staticFileExists and staticDirExists (#22278)
This commit is contained in:
@@ -264,6 +264,10 @@ proc registerAdditionalOps*(c: PCtx) =
|
||||
systemop getCurrentException
|
||||
registerCallback c, "stdlib.osdirs.staticWalkDir", proc (a: VmArgs) {.nimcall.} =
|
||||
setResult(a, staticWalkDirImpl(getString(a, 0), getBool(a, 1)))
|
||||
registerCallback c, "stdlib.staticos.staticDirExists", proc (a: VmArgs) {.nimcall.} =
|
||||
setResult(a, dirExists(getString(a, 0)))
|
||||
registerCallback c, "stdlib.staticos.staticFileExists", proc (a: VmArgs) {.nimcall.} =
|
||||
setResult(a, fileExists(getString(a, 0)))
|
||||
registerCallback c, "stdlib.compilesettings.querySetting", proc (a: VmArgs) =
|
||||
setResult(a, querySettingImpl(c.config, getInt(a, 0)))
|
||||
registerCallback c, "stdlib.compilesettings.querySettingSeq", proc (a: VmArgs) =
|
||||
|
||||
13
lib/std/staticos.nim
Normal file
13
lib/std/staticos.nim
Normal file
@@ -0,0 +1,13 @@
|
||||
## This module implements path handling like os module but works at only compile-time.
|
||||
## This module works even when cross compiling to OS that is not supported by os module.
|
||||
|
||||
proc staticFileExists*(filename: string): bool {.compileTime.} =
|
||||
## Returns true if `filename` exists and is a regular file or symlink.
|
||||
##
|
||||
## Directories, device files, named pipes and sockets return false.
|
||||
discard
|
||||
|
||||
proc staticDirExists*(dir: string): bool {.compileTime.} =
|
||||
## Returns true if the directory `dir` exists. If `dir` is a file, false
|
||||
## is returned. Follows symlinks.
|
||||
discard
|
||||
8
tests/stdlib/tstaticos.nim
Normal file
8
tests/stdlib/tstaticos.nim
Normal file
@@ -0,0 +1,8 @@
|
||||
import std/[assertions, staticos, os]
|
||||
|
||||
block:
|
||||
static:
|
||||
doAssert staticDirExists("MISSINGFILE") == false
|
||||
doAssert staticFileExists("MISSINGDIR") == false
|
||||
doAssert staticDirExists(currentSourcePath().parentDir)
|
||||
doAssert staticFileExists(currentSourcePath())
|
||||
@@ -82,6 +82,8 @@ block:
|
||||
|
||||
doAssert fileExists("MISSINGFILE") == false
|
||||
doAssert dirExists("MISSINGDIR") == false
|
||||
doAssert fileExists(currentSourcePath())
|
||||
doAssert dirExists(currentSourcePath().parentDir)
|
||||
|
||||
# bug #7210
|
||||
block:
|
||||
|
||||
Reference in New Issue
Block a user