getEnv now supports a 'default' parameter; refs #6019
This commit is contained in:
parent
a155130cf2
commit
0895064983
5 changed files with 12 additions and 5 deletions
|
|
@ -37,3 +37,5 @@
|
||||||
This means its results are more precise and it can't run into an infinite loop
|
This means its results are more precise and it can't run into an infinite loop
|
||||||
anymore.
|
anymore.
|
||||||
- Added ``typetraits.$`` as an alias for ``typetraits.name``.
|
- Added ``typetraits.$`` as an alias for ``typetraits.name``.
|
||||||
|
- ``os.getEnv`` now takes an optional ``default`` parameter that tells ``getEnv``
|
||||||
|
what to return if the environment variable does not exist.
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ proc setupVM*(module: PSym; cache: IdentCache; scriptName: string;
|
||||||
setResult(a, osproc.execCmd getString(a, 0))
|
setResult(a, osproc.execCmd getString(a, 0))
|
||||||
|
|
||||||
cbconf getEnv:
|
cbconf getEnv:
|
||||||
setResult(a, os.getEnv(a.getString 0))
|
setResult(a, os.getEnv(a.getString 0, a.getString 1))
|
||||||
cbconf existsEnv:
|
cbconf existsEnv:
|
||||||
setResult(a, os.existsEnv(a.getString 0))
|
setResult(a, os.existsEnv(a.getString 0))
|
||||||
cbconf dirExists:
|
cbconf dirExists:
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,11 @@ template wrap1s_ospaths(op) {.dirty.} =
|
||||||
setResult(a, op(getString(a, 0)))
|
setResult(a, op(getString(a, 0)))
|
||||||
ospathsop op
|
ospathsop op
|
||||||
|
|
||||||
|
template wrap2s_ospaths(op) {.dirty.} =
|
||||||
|
proc `op Wrapper`(a: VmArgs) {.nimcall.} =
|
||||||
|
setResult(a, op(getString(a, 0), getString(a, 1)))
|
||||||
|
ospathsop op
|
||||||
|
|
||||||
template wrap1s_system(op) {.dirty.} =
|
template wrap1s_system(op) {.dirty.} =
|
||||||
proc `op Wrapper`(a: VmArgs) {.nimcall.} =
|
proc `op Wrapper`(a: VmArgs) {.nimcall.} =
|
||||||
setResult(a, op(getString(a, 0)))
|
setResult(a, op(getString(a, 0)))
|
||||||
|
|
@ -96,7 +101,7 @@ proc registerAdditionalOps*(c: PCtx) =
|
||||||
wrap1f_math(ceil)
|
wrap1f_math(ceil)
|
||||||
wrap2f_math(fmod)
|
wrap2f_math(fmod)
|
||||||
|
|
||||||
wrap1s_ospaths(getEnv)
|
wrap2s_ospaths(getEnv)
|
||||||
wrap1s_ospaths(existsEnv)
|
wrap1s_ospaths(existsEnv)
|
||||||
wrap1s_os(dirExists)
|
wrap1s_os(dirExists)
|
||||||
wrap1s_os(fileExists)
|
wrap1s_os(fileExists)
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,7 @@ proc findEnvVar(key: string): int =
|
||||||
if startsWith(environment[i], temp): return i
|
if startsWith(environment[i], temp): return i
|
||||||
return -1
|
return -1
|
||||||
|
|
||||||
proc getEnv*(key: string): TaintedString {.tags: [ReadEnvEffect].} =
|
proc getEnv*(key: string, default = ""): TaintedString {.tags: [ReadEnvEffect].} =
|
||||||
## Returns the value of the `environment variable`:idx: named `key`.
|
## Returns the value of the `environment variable`:idx: named `key`.
|
||||||
##
|
##
|
||||||
## If the variable does not exist, "" is returned. To distinguish
|
## If the variable does not exist, "" is returned. To distinguish
|
||||||
|
|
@ -108,7 +108,7 @@ proc getEnv*(key: string): TaintedString {.tags: [ReadEnvEffect].} =
|
||||||
return TaintedString(substr(environment[i], find(environment[i], '=')+1))
|
return TaintedString(substr(environment[i], find(environment[i], '=')+1))
|
||||||
else:
|
else:
|
||||||
var env = c_getenv(key)
|
var env = c_getenv(key)
|
||||||
if env == nil: return TaintedString("")
|
if env == nil: return TaintedString(default)
|
||||||
result = TaintedString($env)
|
result = TaintedString($env)
|
||||||
|
|
||||||
proc existsEnv*(key: string): bool {.tags: [ReadEnvEffect].} =
|
proc existsEnv*(key: string): bool {.tags: [ReadEnvEffect].} =
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ proc cmpic*(a, b: string): int =
|
||||||
## Compares `a` and `b` ignoring case.
|
## Compares `a` and `b` ignoring case.
|
||||||
cmpIgnoreCase(a, b)
|
cmpIgnoreCase(a, b)
|
||||||
|
|
||||||
proc getEnv*(key: string): string {.tags: [ReadIOEffect].} =
|
proc getEnv*(key: string; default = ""): string {.tags: [ReadIOEffect].} =
|
||||||
## Retrieves the environment variable of name `key`.
|
## Retrieves the environment variable of name `key`.
|
||||||
builtin
|
builtin
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue