How to return an exit code from the main block in Nim?
Asked Answered
D

1

9

In Nim, to write code that executes as a sort of main function, you do (similar to the is main checks in Python):

when isMainModule:
    echo ("Hello, Nim!")

However, for the life of me, I can't figure out how to return an error code. Traditionally there has always been an option to make main functions return int, but since this is not actually in a proc, it doesn't seem like you can return; the only thing I've figured out how to do is to raise an exception. Surely there is a way to just control whether your exit code is zero or not?

Don answered 21/8, 2018 at 13:17 Comment(0)
Q
17

I think system.quit may be what you're looking for. According to the Nim docs:

proc quit(errorcode: int = QuitSuccess) {..}

Stops the program immediately with an exit code.

The proc quit(QuitSuccess) is called implicitly when your nim program finishes without incident for platforms where this is the expected behavior. A raised unhandled exception is equivalent to calling quit(QuitFailure).

Quasi answered 21/8, 2018 at 13:35 Comment(1)
Thanks, total fail of Googlefu I guess! The fact that this is called implicitly at the end anyway is what confirms this answer as correct.Don

© 2022 - 2024 — McMap. All rights reserved.