book icon indicating copy to clipboard operation
book copied to clipboard

Migrate away from exitcode

Open SUPERCILEX opened this issue 3 years ago • 9 comments

See https://github.com/benwilber/exitcode/pull/13#issuecomment-1266451847

SUPERCILEX avatar Oct 04 '22 06:10 SUPERCILEX

We are looking at our default recommendation being the proc-exit crate. I just updated it for the Termiantion crate and to better reflect the status of sysexits. We just need to update the book to use it.

epage avatar Oct 04 '22 16:10 epage

Sounds good, but proc-exit is unnecessarily complicated and opinionated if all you want are the exit codes. sysexits should still at least be mentioned as a "here's the crate that just has exit codes if you want that" thing. BTW, sysexit and sysexits are different. Just want to make sure we're talking about the same thing.

SUPERCILEX avatar Oct 04 '22 17:10 SUPERCILEX

Maybe but I disagree with the choice of sysexits

  • Use of enums makes it fairly restrictive unless you are using it only for cosntants. If you aren't using it for the type, the enum becomes a bit useless.
  • sysexits.h error codes aren't something to implicitly endorse

epage avatar Oct 04 '22 18:10 epage

Use of enums makes it fairly restrictive unless you are using it only for constants. If you aren't using it for the type, the enum becomes a bit useless.

I'm not sure I understand. You can always just cast it to a u8 and then do whatever your want. Or convert it to std::process::ExitCode. Also, using it only for constants is kind of the point.

sysexits.h error codes aren't something to implicitly endorse

True but then why mention exitcode at all? Seems like a red herring argument.

SUPERCILEX avatar Oct 04 '22 18:10 SUPERCILEX

True but then why mention exitcode at all? Seems like a red herring argument.

What does exitcode have to do with this?

epage avatar Oct 04 '22 18:10 epage

What does exitcode have to do with this?

It's recommended here: https://rust-cli.github.io/book/in-depth/exit-code.html

SUPERCILEX avatar Oct 04 '22 19:10 SUPERCILEX

Yeah actually let me just make a PR.

SUPERCILEX avatar Oct 04 '22 19:10 SUPERCILEX

Yes and I have no problem removing exitcode in that document but it would be to replace it with proc-exit.

epage avatar Oct 04 '22 19:10 epage

Hmmm, I just disagree. The opinionated thing should be in https://rust-cli.github.io/book/tutorial/errors.html whereas https://rust-cli.github.io/book/in-depth/exit-code.html should provide just the exit codes.

Or really, exit-code.html should be deleted in favor of an all-encompassing solution inside errors.html that is capable of returning arbitrary exit codes upon error. proc-exit does not address this use case. error-stack does, or anyhow with a custom error type that holds the exit code. Either way, all you need are the exit codes.

SUPERCILEX avatar Oct 04 '22 19:10 SUPERCILEX