Easy self-deleting executables.
Simply register a guard (either soft
or hard
) in the program entrypoint, and have it be dropped to delete the binary.
fn main() {
let _mortem = mortem::hard(); // register mortem guard
// some code
println!("Hello!")
// _mortem drops and executable is deleted
}
The soft
handler exits on IO errors and only tries to delete the executable once;
the hard
handler keeps trying till the executable is successfully deleted.
This is explained in further details in the documentation.
Tracing is disabled by default, but can be enabled with the tracing
feature.
See the examples directory or documentation.