Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fleshgrinder/rust-exit-code

Commonly used exit codes for usage in applications.
https://github.com/fleshgrinder/rust-exit-code

cli exit-codes rust rust-library sysexits

Last synced: 24 days ago
JSON representation

Commonly used exit codes for usage in applications.

Awesome Lists containing this project

README

        

# Rust Exit Codes
Commonly used exit codes for usage in applications.

Using appropriate exit codes greatly helps users of applications to assert them
in their own scripts and take appropriate actions based on the returned code.
Simply using the catchall exit code _1_ all the time does not help others in
any way. Unless there is only a single source of error in the complete
application, which is very unlikely.

## Installation
Add the following to your `Cargo.toml` file:

```toml
[dependencies]
exit-code = "1.0.0"
```

## Usage
```rust
extern crate exit_code;

fn main() {
use std::process::exit;
use exit_code::SUCCESS;

println!("Hello, World!");
exit(SUCCESS);
}
```

This crate provides two additional functions that allow validation of exit
codes:

- `is_reserved(exit_code) -> bool` can be used to check if a given exit code
has a reserved meaning in a shell, refer to the API documentation for the
meaning of the reserved exit codes.
- `is_valid(exit_code) -> bool` can be used to check if a given exit code is
within the range `[0..256]` (anything below or beyond silently overflows).

## References
- Advanced Bash-Scripting Guide: [Appendix E. Exit Codes With Special Meanings](http://tldp.org/LDP/abs/html/exitcodes.html)
- FreeBSD Man Pages: [`man sysexits(3)`](https://www.freebsd.org/cgi/man.cgi?query=sysexits)