Skip to content

Commit

Permalink
Add warnings about exec usage. (#23820)
Browse files Browse the repository at this point in the history
Related to #23819 and also found
in discord
https://discord.com/channels/371759389889003530/371759389889003532/1260845467147829372
Since nothing can be done, besides deprecating the function, a warning
is a better option.

---------

Co-authored-by: Juan Carlos <[email protected]>
  • Loading branch information
planetis-m and juancarlospaco authored Jul 17, 2024
1 parent fe48de4 commit ad5b5e3
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions lib/system/nimscript.nim
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,8 @@ proc cpDir*(`from`, to: string) {.raises: [OSError].} =
proc exec*(command: string) {.
raises: [OSError], tags: [ExecIOEffect, WriteIOEffect].} =
## Executes an external process. If the external process terminates with
## a non-zero exit code, an OSError exception is raised.
## a non-zero exit code, an OSError exception is raised. The command is
## executed relative to the current source path.
##
## **Note:** If you need a version of `exec` that returns the exit code
## and text output of the command, you can use `system.gorgeEx
Expand All @@ -267,11 +268,17 @@ proc exec*(command: string, input: string, cache = "") {.
raises: [OSError], tags: [ExecIOEffect, WriteIOEffect].} =
## Executes an external process. If the external process terminates with
## a non-zero exit code, an OSError exception is raised.
##
## .. warning:: This version of `exec` is executed relative to the nimscript
## module path, which affects how the command resolves relative paths. Thus
## it is generally better to use `gorgeEx` directly when you need more
## control over the execution environment or when working with commands
## that deal with relative paths.
log "exec: " & command:
let (output, exitCode) = gorgeEx(command, input, cache)
echo output
if exitCode != 0:
raise newException(OSError, "FAILED: " & command)
echo output

proc selfExec*(command: string) {.
raises: [OSError], tags: [ExecIOEffect, WriteIOEffect].} =
Expand Down

0 comments on commit ad5b5e3

Please sign in to comment.